Re: [patch 1/1] sys_sync_file_range()

From: Andrew Morton
Date: Thu Mar 30 2006 - 03:08:51 EST


Neil Brown <neilb@xxxxxxx> wrote:
>
> On Wednesday March 29, akpm@xxxxxxxx wrote:
> >
> > From: Andrew Morton <akpm@xxxxxxxx>
> >
> > Remove the recently-added LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT
> > fadvise() additions, do it in a new sys_sync_file_range() syscall
> > instead.
>
> Hmmm... any chance this could be split into a sys_sync_file_range and
> a vfs_sync_file_range which takes a 'struct file*' and does less (or
> no) sanity checking, so I can call it from nfsd?

Coming right up. (Will switch it to fget_light() too)

> Currently I implement COMMIT (which has a range) with a by messing
> around with filemap_fdatawrite and filemap_fdatawait (ignoring the
> range) and I'd rather than a vfs helper.
>
> And in nfsd I call filp->f_op->fsync between the two. Doesn't
> sys_sync_file_range need to call into the filesystem at all?

Interesting question. sync_file_range() is purely a pagecache (ie: file
contents) operation. It doesn't touch metadata at all.

So if it's being used for data-integrity purposes then it really only makes
sense when it's doing file overwrites.

It does call into the filesystem of course - a_ops.writepages() and perhaps
a_ops.writepage().

-
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/