Re: [PATCH] ext3: call blkdev_issue_flush on fsync

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2010-03-26, at 10:50, Surbhi Palande wrote:
To ensure that bits are truly on-disk after an fsync,
we should call blkdev_issue_flush if barriers are supported.

@@ -87,5 +89,7 @@ int ext3_sync_file(struct file * file, struct dentry *dentry, int datasync)
		ret = sync_inode(inode, &wbc);
	}
out:
+	if (journal && (journal->j_flags & JFS_BARRIER))
+		blkdev_issue_flush(inode->i_sb->s_bdev, NULL);
	return ret;


I don't think we need yet ANOTHER barrier here. If the filesystem is mounted in data={journaled,ordered} mode it will have flushed the data to disk as part of the journal commit. If there is an external journal, there were patches posted to have it flush the data on the filesystem device at transaction commit time.

Since fsync on any inode always implies sync of the journal, the only time that this would be needed is if we are running in no-journal mode, or possibly in data=writeback mode.

Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux