Namjae Jeon <[email protected]> writes:

> diff --git a/fs/fat/inode.c b/fs/fat/inode.c
> index 578a5db..2211489 100644
> --- a/fs/fat/inode.c
> +++ b/fs/fat/inode.c
> @@ -491,6 +491,13 @@ EXPORT_SYMBOL_GPL(fat_build_inode);
>  
>  static void fat_evict_inode(struct inode *inode)
>  {
> +     struct super_block *sb = inode->i_sb;
> +
> +     /* Release unwritten fallocated blocks on file release. */
> +     if (round_up(inode->i_size, sb->s_blocksize) <
> +         MSDOS_I(inode)->i_disksize && inode->i_nlink != 0)
> +             fat_truncate_blocks(inode, inode->i_size);
> +
>       truncate_inode_pages(&inode->i_data, 0);
>       if (!inode->i_nlink) {
>               inode->i_size = 0;

This would be better to move after truncate_inode_pages(). And as part
of "else".

        if (!inode->i_nlink) {
                ...
        } else {
                /* here */
        }

And inode->i_size should be ->mmu_private?
-- 
OGAWA Hirofumi <[email protected]>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to