diff options
author | Theodore Ts'o <tytso@mit.edu> | 2010-07-27 11:56:06 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2010-07-27 11:56:06 -0400 |
commit | 0c095c7f113e9fd05913d6e1b2cccbe356be039e (patch) | |
tree | f23477719c99d5c20b4f1817c0ebe302a74eb870 /fs | |
parent | 506bf2d82165c09b179a5077e01037f6270a4db3 (diff) | |
download | op-kernel-dev-0c095c7f113e9fd05913d6e1b2cccbe356be039e.zip op-kernel-dev-0c095c7f113e9fd05913d6e1b2cccbe356be039e.tar.gz |
ext4: Don't error out the fs if the user tries to make a file too big
If the user attempts to make a non-extent-mapped file to be too large,
return EFBIG, but don't call ext4_std_err() which will end up marking
the file system as containing an error.
Thanks to Toshiyuki Okajima-san at Fujitsu for pointing this out.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ext4/inode.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 46d2079..38ec77f 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -5472,10 +5472,8 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr) if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) { struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); - if (attr->ia_size > sbi->s_bitmap_maxbytes) { - error = -EFBIG; - goto err_out; - } + if (attr->ia_size > sbi->s_bitmap_maxbytes) + return -EFBIG; } } |