Amit K. Arora wrote:
Outstanding Issues:
------------------
(1) The final interface is yet to be decided. We have the option of
chosing from one of these:
a> modifying posix_fallocate() in glibc
b> using fcntl
c> using ftruncate, or
d> using the ioctl interface.
If we go with ioctl interface, we need to chose the return
value from the ioctl. We should either return "0" for success and
errno for failure, or we should be returning number of bytes
preallocated.
Now I am more prefer just return 0 for success. Returning the number of
bytes preallocated back to userspace might be helpful in the case when
the specified window contains blocks already being allocated, but this
should not be a common case.
(2) Also, we need to decide on what should happen in case of a
partial success scenario. i.e. after few blocks get preallocated, we hit
some error - say ENOSPC. Should the call just return the number of bytes
preallocated, or should it "undo" the partial preallocation and then
exit with error code ?
I think we should try to avoid this partial preallocation at the first
place. Probably checking the number of free blocks before calling
ext4_ext_get_blocks() and returns -ENOSPC if there isn't enough free
blocks to allocate. Otherwise, if it still hits ENOSPC error, I think it
doesn't hurt to leave the partial preallocated blocks there.
Cheers,
Mingming
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html