]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
ceph: take i_mutex before getting Fw cap
authorYan, Zheng <zheng.z.yan@intel.com>
Fri, 12 Apr 2013 08:11:10 +0000 (16:11 +0800)
committerAlex Elder <elder@inktank.com>
Thu, 18 Apr 2013 02:23:28 +0000 (21:23 -0500)
commite7a4c3eec401e86b1afea42dc4f18cc5b5cb092d
tree4d0e662201011a64d8c84db18fde5640659cfdfa
parent8f68229a8ae27316188af65e990388d6aed59e15
ceph: take i_mutex before getting Fw cap

There is deadlock as illustrated bellow. The fix is taking i_mutex
before getting Fw cap reference.

      write                    truncate                 MDS
---------------------     --------------------      --------------
get Fw cap
                          lock i_mutex
lock i_mutex (blocked)
                          request setattr.size  ->
                                                <-   revoke Fw cap

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Reviewed-by: Alex Elder <elder@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
fs/ceph/caps.c
fs/ceph/file.c