Re: [PATCH 1/5][TAKE3] fallocate() implementation on i86, x86_64 and powerpc

Amit K. Arora
2007-05-17T12:28:38Z

On Thu, May 17, 2007 at 09:40:36AM +1000, David Chinner wrote:
> On Wed, May 16, 2007 at 07:21:16AM -0500, Dave Kleikamp wrote:
> > On Wed, 2007-05-16 at 13:16 +1000, David Chinner wrote:
> > > On Wed, May 16, 2007 at 01:33:59AM +0530, Amit K. Arora wrote:
> >
> > > > Following changes were made to the previous version:
> > > > 1) Added description before sys_fallocate() definition.
> > > > 2) Return EINVAL for len<=0 (With new draft that Ulrich pointed to,
> > > > posix_fallocate should return EINVAL for len <= 0.
> > > > 3) Return EOPNOTSUPP if mode is not one of FA_ALLOCATE or FA_DEALLOCATE
> > > > 4) Do not return ENODEV for dirs (let individual file systems decide if
> > > > they want to support preallocation to directories or not.
> > > > 5) Check for wrap through zero.
> > > > 6) Update c/mtime if fallocate() succeeds.
> > >
> > > Please don't make this always happen. c/mtime updates should be dependent
> > > on the mode being used and whether there is visible change to the file. If no
> > > userspace visible changes to the file occurred, then timestamps should not
> > > be changed.
> >
> > i_blocks will be updated, so it seems reasonable to update ctime. mtime
> > shouldn't be changed, though, since the contents of the file will be
> > unchanged.
>
> That's assuming blocks were actually allocated - if the prealloc range already
> has underlying blocks there is no change and so we should not be changing
> mtime either. Only the filesystem will know if it has changed the file, so I
> think that timestamp updates need to be driven down to that level, not done
> blindy at the highest layer....

Ok. Will make this change in the next post.

--
Regards,
Amit Arora
>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> Principal Engineer
> SGI Australian Software Group