From: Yan, Zheng <zyan@redhat.com>
Date: Sat, 12 Mar 2016 05:32:16 +0000 (+0800)
Subject: ceph: don't request vxattrs from MDS
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=29dccfa5af388916e48a3edc5ac9dc8cc996d9b4;p=linux.git

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>
---

diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c
index 1e1c00a6d907f..139cdef8eb41b 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;
 	}