Whamcloud - gitweb
LU-1812 osd-ldiskfs: handle 4-arg fsync properly
authorJeff Mahoney <jeffm@suse.com>
Mon, 4 Feb 2013 22:07:07 +0000 (17:07 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 28 Feb 2013 01:26:48 +0000 (20:26 -0500)
Fix locking around fsync in osd_object_sync.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Change-Id: Idc35c1649af7ef7d65fba316ffbcd86574fa847a
Reviewed-on: http://review.whamcloud.com/5115
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: chas williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
lustre/osd-ldiskfs/osd_handler.c

index f6dad39..9932320 100644 (file)
@@ -2827,9 +2827,13 @@ static int osd_object_sync(const struct lu_env *env, struct dt_object *dt)
        file->f_dentry = dentry;
        file->f_mapping = inode->i_mapping;
        file->f_op = inode->i_fop;
        file->f_dentry = dentry;
        file->f_mapping = inode->i_mapping;
        file->f_op = inode->i_fop;
+#ifndef HAVE_FILE_FSYNC_4ARGS
        mutex_lock(&inode->i_mutex);
        mutex_lock(&inode->i_mutex);
-       rc = file->f_op->fsync(file, dentry, 0);
+#endif
+       rc = cfs_do_fsync(file, 0);
+#ifndef HAVE_FILE_FSYNC_4ARGS
        mutex_unlock(&inode->i_mutex);
        mutex_unlock(&inode->i_mutex);
+#endif
        RETURN(rc);
 }
 
        RETURN(rc);
 }