summaryrefslogtreecommitdiffstats
path: root/.gitignore
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2016-08-29 15:38:11 -0400
committerTheodore Ts'o <tytso@mit.edu>2016-08-29 15:38:11 -0400
commite3014d14a81edde488d9a6758eea8afc41752d2d (patch)
tree4f367d8df1b7df51d27790bb16bf4bdf39bfefc5 /.gitignore
parentb8927721ae9d5ac0582d29d7b8c267d465ad5f00 (diff)
downloadlinux-e3014d14a81edde488d9a6758eea8afc41752d2d.tar.bz2
ext4: fixup free space calculations when expanding inodes
Conditions checking whether there is enough free space in an xattr block and when xattr is large enough to make enough space in the inode forgot to account for the fact that inode need not be completely filled up with xattrs. Thus we could move unnecessarily many xattrs out of inode or even falsely claim there is not enough space to expand the inode. We also forgot to update the amount of free space in xattr block when moving more xattrs and thus could decide to move too big xattr resulting in unexpected failure. Fix these problems by properly updating free space in the inode and xattr block as we move xattrs. To simplify the math, avoid shifting xattrs after removing each one xattr and instead just shift xattrs only once there is enough free space in the inode. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions