X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fmdd%2Fmdd_dir.c;h=d06987456500b0df1d704017056b8cb3bfcfa239;hp=a8e4b6094ac4ab6e2bfc6d85fc68145423cbd01b;hb=94a5bc1bcb6c6373ead5b091ff5915dfe452377b;hpb=a245dde23a9fdbdff7d09a783bcbe3349f68a908 diff --git a/lustre/mdd/mdd_dir.c b/lustre/mdd/mdd_dir.c index a8e4b60..d069874 100644 --- a/lustre/mdd/mdd_dir.c +++ b/lustre/mdd/mdd_dir.c @@ -3512,6 +3512,7 @@ static int mdd_iterate_xattrs(const struct lu_env *env, struct mdd_thread_info *info = mdd_env_info(env); char *xname; struct lu_buf list_xbuf; + struct lu_buf cbxbuf; struct lu_buf xbuf = { NULL }; int list_xsize; int xlen; @@ -3568,14 +3569,15 @@ static int mdd_iterate_xattrs(const struct lu_env *env, if (rc < 0) GOTO(out, rc); + cbxbuf = xbuf; repeat: - rc = cb(env, tobj, &xbuf, xname, 0, handle); + rc = cb(env, tobj, &cbxbuf, xname, 0, handle); if (unlikely(rc == -ENOSPC && strcmp(xname, XATTR_NAME_LINK) == 0)) { rc = linkea_overflow_shrink( - (struct linkea_data *)(xbuf.lb_buf)); + (struct linkea_data *)(cbxbuf.lb_buf)); if (likely(rc > 0)) { - xbuf.lb_len = rc; + cbxbuf.lb_len = rc; goto repeat; } }