[PATCH] fallocate returned values on failure

Jones jones.kstw at gmail.com
Thu Dec 4 23:19:47 MST 2014


Hello Jeremy,

Thanks! Good to know this is expected behavior.

--
Regards,
Jones

2014-12-05 14:04 GMT+08:00 Jeremy Allison <jra at samba.org>:

> On Fri, Dec 05, 2014 at 11:36:28AM +0800, Jones wrote:
> > Hello Jeremy,
> >
> > After test this look.txt it works!
> >
> > And one more concern,
> > upload a file named test.img to my linux box,
> > once if fallocate() returns -1 with errno = ENOSPC,
> > the file test.img is left in the linux box and its size is 0 Bytes,
> > hmm not quite sure if this is okay just left a file test.img with 0
> Bytes,
> > or perhaps we could delete it in close_file() ?
> >
> > 1. vfs_allocate_file_space():
> > return -1 and errno = ENOSPC,
> > back to earlier frame create_file_unixpath().
> >
> > 2. create_file_unixpath():
> > status = NT_STATUS_DISK_FULL,
> > goto fail;
> >
> > 3. close_file(req, fsp, ERROR_CLOSE);
> > Hmm looks like the 0KB 10GB.img file is not delete at this api.
>
> That is actually expected behavior.
>
> We can call close_file() with type ERROR_CLOSE
> under many different circumstances so deleting
> the file is not always the correct thing to
> do.
>
> We'd need to special case the DISK_FULL
> case in create_file_unixpath() and set
> the delete on close bit only if we created
> the file, and do a NORMAL_CLOSE here.
>


More information about the samba-technical mailing list