From: wangdi Date: Sat, 30 Sep 2006 16:09:04 +0000 (+0000) Subject: Branch: b_new_cmd X-Git-Tag: v1_8_0_110~486^2~744 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=953b2dddc93384ae98210c51b0344d3f5d2cccfe;p=fs%2Flustre-release.git Branch: b_new_cmd ll_setattr_done_writing result will overwrite the previous rc error in ll_setattr_raw. which cause recovery-small 20b failed --- diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index 54a2876..a124445 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -1349,7 +1349,7 @@ int ll_setattr_raw(struct inode *inode, struct iattr *attr) struct ll_sb_info *sbi = ll_i2sbi(inode); struct md_op_data *op_data = NULL; int ia_valid = attr->ia_valid; - int rc = 0; + int rc = 0, rc1 = 0; ENTRY; CDEBUG(D_VFSTRACE, "VFS Op:inode=%lu valid %x\n", inode->i_ino, @@ -1536,11 +1536,12 @@ int ll_setattr_raw(struct inode *inode, struct iattr *attr) EXIT; out: if (op_data) { - if (op_data->ioepoch) - rc = ll_setattr_done_writing(inode, op_data); + if (op_data->ioepoch) { + rc1 = ll_setattr_done_writing(inode, op_data); + } ll_finish_md_op_data(op_data); } - return rc; + return rc ? rc : rc1; } int ll_setattr(struct dentry *de, struct iattr *attr)