diff options
| author | 2011-11-05 22:06:31 -0700 | |
|---|---|---|
| committer | 2011-11-05 22:06:31 -0700 | |
| commit | 15a2015fbc692e1c97d7ce12d96e077f5ae7ea6d (patch) | |
| tree | f902cc2b7cab475c8b220147bb786dc3a772888e /lib/mpi/mpi-cmp.c | |
| parent | ceph/super.c: quiet sparse noise (diff) | |
| download | linux-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 'lib/mpi/mpi-cmp.c')
0 files changed, 0 insertions, 0 deletions
