Re: [PATCH v3] fat: editions to support fat_fallocate

From: Namjae Jeon
Date: Tue Mar 12 2013 - 04:29:15 EST

2013/3/12, OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>:
> Namjae Jeon <linkinjeon@xxxxxxxxx> writes:
>>> This choose ->release(). BTW, we would also be able to do this only
>>> ->evict_inode(), although I'm not thinking yet which one is better.
>>> If you had conclusion, it would be nice to explain it.
>> evict_inode() will be called only when we unlink the file or if inode
>> is evicted from cache.
>> As we discussed with you before, We considered preallocated blocks is
>> discarded on all close file cases(unlink and muliple openning file).
>> So we think it would be better to do this in ->release().
> If so, probably, I didn't clear my opinion/suggestion, or misled
> you. Sorry about it.
> My opinion/suggestion is, "it should be before umount()".
> I.e. fallocate() doesn't have any affect to FAT on clean state (clean
> umount).
> To clear my state, I don't have strong opinion about implementation yet.
> For example, about ->release() or ->evict_inode().
> So, if you had reason to use ->release() over "we discussed", it would
> be good. (Or, if you still didn't have reasons, we would be better to
> think about it)
We considered all the possible points where we can release the
pre-allocated blocks.
As the "pre-allocation" is file based, we think it need to have
release mechanism.

In case of evict, Eviction will either happen when the file is removed
or the inode is evicted from the cache by memory pressure when no
references are present for that file.
It is good that evict will be triggered in umount. but there is a risk
that umount time can be increased.
And It show users inconsistent result. e.g sometime user can not get
file discarded fallocated blocks by memory pressure.

Let me know your opinion.

> Thanks.
> --
> 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
Please read the FAQ at