Re: [PATCH 1/1] udf: block-based fs should use generic_write_end()

From: Jan Kara
Date: Wed Apr 01 2015 - 03:53:13 EST


On Thu 19-03-15 23:37:59, Taesoo Kim wrote:
> simple_write_end() is for non-block fs, which doesn't invoke
> mark_inode_dirty(). Instead, generic_write_end() correctly
> handles such case when i_size has changed.
>
> Signed-off-by: Taesoo Kim <tsgatesv@xxxxxxxxx>
So simple_write_end() is actually correct in that place. We cannot even
use generic_write_end() because that page doesn't have buffers attached -
it's a special case of a file which is smaller than a block and is packed
in the inode. Please test the patch better next time - this would oops on
you the first time you try to write to such a file. Thanks!

Honza

> ---
> fs/udf/file.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/udf/file.c b/fs/udf/file.c
> index 08f3555..28b1dab 100644
> --- a/fs/udf/file.c
> +++ b/fs/udf/file.c
> @@ -112,7 +112,7 @@ const struct address_space_operations udf_adinicb_aops = {
> .readpage = udf_adinicb_readpage,
> .writepage = udf_adinicb_writepage,
> .write_begin = udf_adinicb_write_begin,
> - .write_end = simple_write_end,
> + .write_end = generic_write_end,
> .direct_IO = udf_adinicb_direct_IO,
> };
>
> --
> 2.3.3
>
--
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
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/