From: Vladimir Saveliev Date: Fri, 5 Nov 2010 15:22:14 +0000 (+0300) Subject: b=19669 update LOV object version only on data change X-Git-Tag: 2.0.56.0~37 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=498b6a39cc9ee9a01b327572f966a066623a3169;ds=sidebyside b=19669 update LOV object version only on data change LOV object version is changed only when LOV object content is changed, either on write or size change (truncate). No more on metadata change like chmod/chown/chgrp. Needed for HSM. a=aurelien.degremont i=mikhail.pershin --- diff --git a/lustre/obdfilter/filter.c b/lustre/obdfilter/filter.c index bff5eba..c6b330f 100644 --- a/lustre/obdfilter/filter.c +++ b/lustre/obdfilter/filter.c @@ -3276,7 +3276,10 @@ int filter_setattr_internal(struct obd_export *exp, struct dentry *dentry, * we have two left for the last_rcvd and VBR inode version updates. */ err = fsfilt_extend(exp->exp_obd, inode, 2, handle); - rc = filter_finish_transno(exp, inode, oti, rc, sync); + /* Update inode version only if data has changed => size has changed */ + rc = filter_finish_transno(exp, ia_valid & ATTR_SIZE ? inode : NULL, + oti, rc, sync); + if (sync) { filter_cancel_cookies_cb(exp->exp_obd, 0, fcc, rc); fcc = NULL;