Re: [PATCH v2 1/5] fat: allocate persistent inode numbers
From: OGAWA Hirofumi
Date: Thu Sep 06 2012 - 08:19:56 EST
Namjae Jeon <linkinjeon@xxxxxxxxx> writes:
>>> In this long discusstion about the FAT acceptance over NFS, our belief
>>> is still that the objective should be to reduce errors as much as
>>> possible and then if there are certain scenarios - at least that could
>>> be highlighted as a limitation in Documentation instead of completely
>>> discarding the usage of FAT over NFS. So how about puttting rename
>>> scenario as a limitation ? In ideal scenario how many times this is
>>> going to happen ?
>>
>> My understanding of your patches is to introduce the silent corruption
>> bug by getting wrong location via ino on some cases, instead of
>> ESTALE. And make surprise to userland by change ino.
>>
>> Why is it safe to change ino? If you are saying to remove the changing
>> ino on rename, how handle the case of collision?
> Yes, agreed this would lead to collision. So, If we are choosing
> 'i_pos' as inode
> number, We need to have a mechanism to avoid this 'i_pos' being reused.
>
> We can have one thing over here. As a part of avoidance for such scenarios -
> We can return EBUSY for this rename operation. i.e., If the inode is being
> referenced then in such cases it makes sense to return EBUSY over NFS and
> forcus on the large part of the solution which is making FAT stable.
>
> Let me know your opinion.
It sounds like sane to provide the limited but stable behavior, with the
option. But at first, I'd like to see the read-only export but clean
solution, and make it stable. (I'm not thinking about the implementation
detail. It may be the stable ino solution, or may not be.)
After that, we can make it writable incrementally.
--
OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
--
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/