From: Theodore Ts'o Date: Mon, 1 Jul 2013 12:12:39 +0000 (-0400) Subject: ext4: check error return from ext4_write_inline_data_end() X-Git-Tag: firefly_0821_release~6453^2~1580 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0529b225e14f6187cd7a997ebc438538059a7889;p=firefly-linux-kernel-4.4.55.git ext4: check error return from ext4_write_inline_data_end() commit 42c832debbbf819f6c4ad8601baa559c44105ba4 upstream. The function ext4_write_inline_data_end() can return an error. So we need to assign it to a signed integer variable to check for an error return (since copied is an unsigned int). Signed-off-by: "Theodore Ts'o" Cc: Zheng Liu Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index d6382b89ecbd..c2434f89e9ed 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -1118,10 +1118,13 @@ static int ext4_write_end(struct file *file, } } - if (ext4_has_inline_data(inode)) - copied = ext4_write_inline_data_end(inode, pos, len, - copied, page); - else + if (ext4_has_inline_data(inode)) { + ret = ext4_write_inline_data_end(inode, pos, len, + copied, page); + if (ret < 0) + goto errout; + copied = ret; + } else copied = block_write_end(file, mapping, pos, len, copied, page, fsdata);