aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph/dir.c
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2011-11-05 22:06:31 -0700
committerSage Weil <sage@newdream.net>2011-11-05 22:06:31 -0700
commit15a2015fbc692e1c97d7ce12d96e077f5ae7ea6d (patch)
treef902cc2b7cab475c8b220147bb786dc3a772888e /fs/ceph/dir.c
parentceph/super.c: quiet sparse noise (diff)
downloadlinux-dev-15a2015fbc692e1c97d7ce12d96e077f5ae7ea6d.tar.xz
linux-dev-15a2015fbc692e1c97d7ce12d96e077f5ae7ea6d.zip
ceph: fix iput race when queueing inode work
If we queue a work item that calls iput(), make sure we ihold() before attempting to queue work. Otherwise our queued work might miraculously run before we notice the queue_work() succeeded and call ihold(), allowing the inode to be destroyed. That is, instead of if (queue_work(...)) ihold(); we need to do ihold(); if (!queue_work(...)) iput(); Reported-by: Amon Ott <a.ott@m-privacy.de> Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/dir.c')
0 files changed, 0 insertions, 0 deletions