summaryrefslogtreecommitdiffstats
path: root/fs/ceph
diff options
context:
space:
mode:
authorYan, Zheng <zyan@redhat.com>2016-03-12 13:32:16 +0800
committerIlya Dryomov <idryomov@gmail.com>2016-03-25 18:51:55 +0100
commit29dccfa5af388916e48a3edc5ac9dc8cc996d9b4 (patch)
tree3a3dee305bf58df79a59898da0f0f9c4a85b26ab /fs/ceph
parent132ca7e1de1e3217af06bce2beb3aa13c3edc7f6 (diff)
downloadlinux-29dccfa5af388916e48a3edc5ac9dc8cc996d9b4.tar.gz
linux-29dccfa5af388916e48a3edc5ac9dc8cc996d9b4.tar.bz2
linux-29dccfa5af388916e48a3edc5ac9dc8cc996d9b4.zip
ceph: don't request vxattrs from MDS
It's uselese because MDS reply does not carry any vxattr. Signed-off-by: Yan, Zheng <zyan@redhat.com>
Diffstat (limited to 'fs/ceph')
-rw-r--r--fs/ceph/xattr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c
index 1e1c00a6d907..139cdef8eb41 100644
--- a/fs/ceph/xattr.c
+++ b/fs/ceph/xattr.c
@@ -727,8 +727,10 @@ ssize_t __ceph_getxattr(struct inode *inode, const char *name, void *value,
/* let's see if a virtual xattr was requested */
vxattr = ceph_match_vxattr(inode, name);
- if (vxattr && !(vxattr->exists_cb && !vxattr->exists_cb(ci))) {
- err = vxattr->getxattr_cb(ci, value, size);
+ if (vxattr) {
+ err = -ENODATA;
+ if (!(vxattr->exists_cb && !vxattr->exists_cb(ci)))
+ err = vxattr->getxattr_cb(ci, value, size);
return err;
}