OpenCloudOS-Kernel/include/linux/ceph
Yan, Zheng 315f240880 ceph: fix security xattr deadlock
When security is enabled, security module can call filesystem's
getxattr/setxattr callbacks during d_instantiate(). For cephfs,
d_instantiate() is usually called by MDS' dispatch thread, while
handling MDS reply. If the MDS reply does not include xattrs and
corresponding caps, getxattr/setxattr need to send a new request
to MDS and waits for the reply. This makes MDS' dispatch sleep,
nobody handles later MDS replies.

The fix is make sure lookup/atomic_open reply include xattrs and
corresponding caps. So getxattr can be handled by cached xattrs.
This requires some modification to both MDS and request message.
(Client tells MDS what caps it wants; MDS encodes proper caps in
the reply)

Smack security module may call setxattr during d_instantiate().
Unlike getxattr, we can't force MDS to issue CEPH_CAP_XATTR_EXCL
to us. So just make setxattr return error when called by MDS'
dispatch thread.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
2016-03-25 18:51:55 +01:00
..
auth.h libceph: message signature support 2014-12-17 20:09:50 +03:00
buffer.h libceph: nuke ceph_kvfree() 2014-12-17 20:09:50 +03:00
ceph_debug.h
ceph_features.h libceph: revamp subs code, switch to SUBSCRIBE2 protocol 2016-03-25 18:51:38 +01:00
ceph_frag.h ceph: ceph_frag_contains_value can be boolean 2016-01-21 19:36:07 +01:00
ceph_fs.h ceph: fix security xattr deadlock 2016-03-25 18:51:55 +01:00
ceph_hash.h
debugfs.h libceph: simplify our debugfs attr macro 2015-04-20 18:55:39 +03:00
decode.h remove extra definitions of U32_MAX 2014-01-23 16:36:55 -08:00
libceph.h libceph: monc hunt rate is 3s with backoff up to 30s 2016-03-25 18:51:39 +01:00
mdsmap.h ceph: update support for PGID64, PGPOOL3, OSDENC protocol features 2013-02-26 15:02:25 -08:00
messenger.h libceph: fix ceph_msg_revoke() 2016-01-21 19:36:08 +01:00
mon_client.h libceph: monc hunt rate is 3s with backoff up to 30s 2016-03-25 18:51:39 +01:00
msgpool.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
msgr.h libceph: use keepalive2 to verify the mon session is alive 2015-09-08 23:14:30 +03:00
osd_client.h libceph: add helper that duplicates last extent operation 2016-03-25 18:51:43 +01:00
osdmap.h libceph: osdmap.h: Add missing format newlines 2015-04-20 18:55:35 +03:00
pagelist.h libceph: fixup includes in pagelist.h 2014-12-17 20:09:53 +03:00
rados.h libceph: sync osd op definitions in rados.h 2014-10-14 12:57:02 -07:00
types.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00