From c19cbaca19520ff7f38deb3bbc47bef195d18989 Mon Sep 17 00:00:00 2001 From: Tiger Yang Date: Sun, 2 Nov 2008 19:04:21 +0800 Subject: [PATCH] --- yaml --- r: 118751 b: refs/heads/master c: 6c1e183e12dbd78a897a859f13220406296fee31 h: refs/heads/master i: 118749: 42fc8ef29618b0954124af98ddddd6cb85a810b3 118747: 3f41a6c96f455ed09991063a791dcf4b10d96244 118743: 2e972d1c0238f62299c1f625ea8bb0ff5d8c1be4 118735: 1a0c2bcaaf2e62f9fccbab382a9bb2fdfa1944aa 118719: 757b70db9bb348e63e78a8946837a53cfff608a9 v: v3 --- [refs] | 2 +- trunk/fs/ocfs2/xattr.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d421c2498b41..9931bf6c0266 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: de29c08528bae45e3fa1171d190f1340e37e0f70 +refs/heads/master: 6c1e183e12dbd78a897a859f13220406296fee31 diff --git a/trunk/fs/ocfs2/xattr.c b/trunk/fs/ocfs2/xattr.c index 70baffeb1812..054e2efb0b7e 100644 --- a/trunk/fs/ocfs2/xattr.c +++ b/trunk/fs/ocfs2/xattr.c @@ -777,6 +777,11 @@ static int ocfs2_xattr_block_get(struct inode *inode, goto cleanup; } + if (xs->not_found) { + ret = -ENODATA; + goto cleanup; + } + xb = (struct ocfs2_xattr_block *)xs->xattr_bh->b_data; size = le64_to_cpu(xs->here->xe_value_size); if (buffer) { @@ -860,7 +865,7 @@ static int ocfs2_xattr_get(struct inode *inode, down_read(&oi->ip_xattr_sem); ret = ocfs2_xattr_ibody_get(inode, name_index, name, buffer, buffer_size, &xis); - if (ret == -ENODATA) + if (ret == -ENODATA && di->i_xattr_loc) ret = ocfs2_xattr_block_get(inode, name_index, name, buffer, buffer_size, &xbs); up_read(&oi->ip_xattr_sem);