Whamcloud - gitweb
b=19669 update LOV object version only on data change
authorVladimir Saveliev <vladimir.saveliev@sun.com>
Fri, 5 Nov 2010 15:22:14 +0000 (18:22 +0300)
committerVitaly Fertman <vitaly.fertman@sun.com>
Mon, 8 Nov 2010 20:54:03 +0000 (23:54 +0300)
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

lustre/obdfilter/filter.c

index bff5eba..c6b330f 100644 (file)
@@ -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;