Re: sync_file_range.2: add some big WARNINGS

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

 



On Sun, 20 Sep 2009 07:34:40 +0200
Michael Kerrisk <mtk.manpages@xxxxxxxxxxxxxx> wrote:

> Hi Christoph,
> 
> Thanks for this patch. Since Andrew was the original author of this
> syscall, I'd like him to take a look at these changes, to get some
> review.
> 
> Andrew?
> 
> Thanks
> 
> Michael
> 
> On Thu, Aug 27, 2009 at 8:01 PM, Christoph Hellwig <hch@xxxxxx> wrote:
> > This system call is by design completely unsuitable for any data
> > integrity operations. __Make that very clear in the manpage.
> >
> >
> > Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> >
> > Index: man-pages/man2/sync_file_range.2
> > ===================================================================
> > --- man-pages.orig/man2/sync_file_range.2 __ __ __ 2009-08-27 14:51:51.373360594 -0300
> > +++ man-pages/man2/sync_file_range.2 __ __2009-08-27 14:57:35.213854927 -0300
> > @@ -80,11 +80,22 @@ after performing any write.
> > __Specifying
> > __.I flags
> > __as 0 is permitted, as a no-op.
> > -.SS Some details
> > -None of these operations write out the file's metadata.
> > +.SS WARNING
> > +This system call is extremly dangerous and should not be used in portable
> > +programs. __None of these operations write out the file's metadata.
> > __Therefore, unless the application is strictly performing overwrites of
> > -already-instantiated disk blocks,
> > -there are no guarantees that the data will be available after a crash.
> > +already-instantiated disk blocks, there are no guarantees that the data will
> > +be available after a crash. __There is no user interface to know if a
> > +write is purely an overwrite. On filesystem using copy on write semantics
> > +like
> > +.IR btrfs
> > +an over write of existing allocated blocks is impossible. __Writing into
> > +pre-allocated space many filesystems also require calls into the block
> > +allocator which this system call does not sync out to disk.
> > +This system call does not flush disk write caches and thus does not provide
> > +any data integrity on systems with volatile disk write caches.
> > +
> > +.SS Some details
> >

Shrug.  If you want.

The syscall is all about dirty memory management and userspace control
over IO timing/volume.  Trying to use it for data integrity purposes is a
bit perverse.
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux