From dc89b0a99c82f0e9da3a0dad91763d61e3a3a4a9 Mon Sep 17 00:00:00 2001 From: Eric Mei Date: Mon, 8 Feb 2010 16:57:23 -0700 Subject: [PATCH] b=21278 fix a memory leak in mdd_links_get(). i=nathan i=rahul --- lustre/mdd/mdd_dir.c | 3 +-- lustre/mdd/mdd_object.c | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lustre/mdd/mdd_dir.c b/lustre/mdd/mdd_dir.c index fb0c0f3..6045cf3 100644 --- a/lustre/mdd/mdd_dir.c +++ b/lustre/mdd/mdd_dir.c @@ -2278,8 +2278,7 @@ struct lu_buf *mdd_links_get(const struct lu_env *env, rc = mdo_xattr_get(env, mdd_obj, buf, XATTR_NAME_LINK, capa); if (rc == -ERANGE) { /* Buf was too small, figure out what we need. */ - buf->lb_buf = NULL; - buf->lb_len = 0; + mdd_buf_put(buf); rc = mdo_xattr_get(env, mdd_obj, buf, XATTR_NAME_LINK, capa); if (rc < 0) return ERR_PTR(rc); diff --git a/lustre/mdd/mdd_object.c b/lustre/mdd/mdd_object.c index 746cefb..99ed100 100644 --- a/lustre/mdd/mdd_object.c +++ b/lustre/mdd/mdd_object.c @@ -131,6 +131,7 @@ void mdd_buf_put(struct lu_buf *buf) else OBD_FREE(buf->lb_buf, buf->lb_len); buf->lb_buf = NULL; + buf->lb_len = 0; } const struct lu_buf *mdd_buf_get_const(const struct lu_env *env, -- 1.8.3.1