Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-8840 osp: handle EA cache properly
[fs/lustre-release.git]
/
lustre
/
target
/
out_handler.c
diff --git
a/lustre/target/out_handler.c
b/lustre/target/out_handler.c
index
1cf8c21
..
7781ff3
100644
(file)
--- a/
lustre/target/out_handler.c
+++ b/
lustre/target/out_handler.c
@@
-277,19
+277,22
@@
static int out_xattr_get(struct tgt_session_info *tsi)
lbuf->lb_len = (int)tti->tti_u.update.tti_update->ou_result_size;
lbuf->lb_buf = update_result->our_data;
if (lbuf->lb_len == 0)
lbuf->lb_len = (int)tti->tti_u.update.tti_update->ou_result_size;
lbuf->lb_buf = update_result->our_data;
if (lbuf->lb_len == 0)
- lbuf->lb_buf =
0
;
+ lbuf->lb_buf =
NULL
;
dt_read_lock(env, obj, MOR_TGT_CHILD);
rc = dt_xattr_get(env, obj, lbuf, name);
dt_read_unlock(env, obj);
dt_read_lock(env, obj, MOR_TGT_CHILD);
rc = dt_xattr_get(env, obj, lbuf, name);
dt_read_unlock(env, obj);
- if (rc <
0)
+ if (rc <
= 0) {
lbuf->lb_len = 0;
lbuf->lb_len = 0;
- CDEBUG(D_INFO, "%s: "DFID" get xattr %s len %d\n",
- tgt_name(tsi->tsi_tgt), PFID(lu_object_fid(&obj->do_lu)),
- name, (int)lbuf->lb_len);
+ if (unlikely(!rc))
+ rc = -ENODATA;
+ } else if (lbuf->lb_buf) {
+ lbuf->lb_len = rc;
+ }
- GOTO(out, rc);
+ CDEBUG(D_INFO, "%s: "DFID" get xattr %s len %d: rc = %d\n",
+ tgt_name(tsi->tsi_tgt), PFID(lu_object_fid(&obj->do_lu)),
+ name, (int)lbuf->lb_len, rc);
-out:
object_update_result_insert(reply, lbuf->lb_buf, lbuf->lb_len, idx, rc);
RETURN(0);
}
object_update_result_insert(reply, lbuf->lb_buf, lbuf->lb_len, idx, rc);
RETURN(0);
}