diff options
-rw-r--r-- | fs/ceph/xattr.c | 6 |
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; } |