2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-19 02:34:01 +08:00
linux-next/fs/ceph
Yan, Zheng 37505d5768 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>
2013-05-01 21:18:53 -07:00
..
addr.c libceph: combine initializing and setting osd data 2013-05-01 21:18:23 -07:00
caps.c ceph: take i_mutex before getting Fw cap 2013-05-01 21:18:53 -07:00
ceph_frag.c ceph: factor out libceph from Ceph file system 2010-10-20 15:37:28 -07:00
debugfs.c libceph: delay debugfs initialization until we learn global_id 2012-08-20 10:03:15 -07:00
dir.c ceph: use i_release_count to indicate dir's completeness 2013-05-01 21:17:07 -07:00
export.c fs: encode_fh: return FILEID_INVALID if invalid fid_type 2013-02-26 02:46:10 -05:00
file.c ceph: take i_mutex before getting Fw cap 2013-05-01 21:18:53 -07:00
inode.c ceph: fix symlink inode operations 2013-05-01 21:18:50 -07:00
ioctl.c libceph: rename ceph_calc_object_layout() 2013-05-01 21:16:17 -07:00
ioctl.h ceph: fully initialize new layout 2012-05-16 14:28:27 -05:00
Kconfig fs/ceph: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:39:04 -08:00
locks.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
Makefile ceph: Makefile: Remove unnessary code 2011-01-12 15:15:13 -08:00
mds_client.c libceph: add, don't set data for a message 2013-05-01 21:18:34 -07:00
mds_client.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2013-02-28 17:43:09 -08:00
mdsmap.c ceph: Use pseudo-random numbers to choose mds 2013-05-01 21:18:49 -07:00
snap.c ceph: define snap counts as u32 everywhere 2012-07-30 18:15:47 -07:00
strings.c libceph: update ceph_mds_state_name() and ceph_mds_op_name() 2013-02-18 12:20:34 -06:00
super.c ceph: set up page array mempool with correct size 2013-05-01 21:17:50 -07:00
super.h ceph: use i_release_count to indicate dir's completeness 2013-05-01 21:17:07 -07:00
xattr.c ceph: eliminate sparse warnings in fs code 2013-02-25 15:37:14 -06:00