Re: [PATCH v3] introduce sys_syncfs to sync a single file system

From: Ric Wheeler
Date: Sat Mar 12 2011 - 07:42:14 EST


On 03/11/2011 10:50 PM, Indan Zupancic wrote:
On Sat, March 12, 2011 03:52, Ric Wheeler wrote:
Sage was pretty clear in stating the motivation which is the use case you
think is questionable. Probably not interesting for consumer devices, but
definitely extremely interesting in large servers with multiple file systems.
Not really, he just said "It is frequently useful to sync a single file system",
without giving any use cases. He then gave two situations where either sync or
fsync isn't sufficient, to which I replied earlier and you called missing the
point. But that's not the same as giving a use case.

In fact, we do it today as mentioned earlier in the thread - this simply
exports that useful capability in a clean way.
Did you use the remount trick or the ioctl? If the latter, is it sufficient
for your need? If the first, would guaranteeing that mount -o remount,rw
trick will keep working solve the problem for you?

When or why would you want to sync one specific filesystem? As you're doing
it, you could explain your use case better instead of telling me I'm missing
the point.

If sync(2) didn't exist and people wanted to add it I'd complain too. This
has all the problems of sync(2), but with the "not sure if all the files are
on the file system I think" problem added.

Greetings,

Indan

System wide sync and file system specific sync are useful in several scenarios. One example is something like a restore (or an rsync) where an application copies lots of files into a target file system. It is *much* faster to do this without doing an fsync() call per file (orders of magnitude faster).

Once your bulk write has finished, it is prudent to run "sync" to push that data out to disk before you trust that your new copy will survive a crash or power outage. Alternatively, you could reopen and fsync each file that was copied which seems to be the method that you prefer.

Ric

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