]> git.baikalelectronics.ru Git - kernel.git/commit
ceph: request xattrs if xattr_version is zero
authorYan, Zheng <zyan@redhat.com>
Tue, 16 Sep 2014 13:46:17 +0000 (21:46 +0800)
committerIlya Dryomov <idryomov@redhat.com>
Tue, 14 Oct 2014 17:03:38 +0000 (21:03 +0400)
commit6dcbe0adbe38d149c67b6246235eca8d1b888b85
tree81b68ad636814b6ffbc3af1be01276a038b50759
parentd13bc9c0764fdfd7cedf0a7906863e6f519b23d3
ceph: request xattrs if xattr_version is zero

Following sequence of events can happen.
  - Client releases an inode, queues cap release message.
  - A 'lookup' reply brings the same inode back, but the reply
    doesn't contain xattrs because MDS didn't receive the cap release
    message and thought client already has up-to-data xattrs.

The fix is force sending a getattr request to MDS if xattrs_version
is 0. The getattr mask is set to CEPH_STAT_CAP_XATTR, so MDS knows client
does not have xattr.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
fs/ceph/file.c
fs/ceph/inode.c
fs/ceph/ioctl.c
fs/ceph/super.h
fs/ceph/xattr.c