Re: [PATCH 06/25] vfs: add i_op->atomic_create()

From: Miklos Szeredi
Date: Tue Mar 13 2012 - 07:22:13 EST


Christoph Hellwig <hch@xxxxxxxxxxxxx> writes:

> On Wed, Mar 07, 2012 at 10:22:23PM +0100, Miklos Szeredi wrote:
>> From: Miklos Szeredi <mszeredi@xxxxxxx>
>>
>> Add a new inode operation which is called on regular file create. This is a
>> replacement for ->create() which allows the file to be opened atomically with
>> creation.
>>
>> This function is also called for non-open creates (mknod(2)) with a NULL file
>> argument. Only one of ->create or ->atomic_create will be called, implementing
>> both makes no sense.
>>
>> The functionality of this method partially overlaps that of ->atomic_open().
>> FUSE and 9P only use ->atomic_create, NFS, CIFS and CEPH use both.
>
> I really don't like the special casing of the mknod handling in every
> atomic_create instance. Either we should keep ->create for it, or do a
> cleanup pass before to always make that pass go through ->mknod - in
> fact most filesystems handle the two in common code anyway so we might
> be able to get rid of one of them, possible mkdir as well.

Good point. Yes, ->create is probably worth getting rid of. Mkdir, I'm
not so sure, but I'll look at what filesystems are doing.

Thanks,
Miklos
--
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/