mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
udf: Make sure i_lenExtents is uptodate on inode eviction
UDF maintains total length of all extents in i_lenExtents. Generally we keep extent lengths (and thus i_lenExtents) block aligned because it makes the file appending logic simpler. However the standard mandates that the inode size must match the length of all extents and thus we trim the last extent when closing the file. To catch possible bugs we also verify that i_lenExtents matches i_size when evicting inode from memory. Commitb405c1e58b
("udf: refactor udf_next_aext() to handle error") however broke the code updating i_lenExtents and thus udf_evict_inode() ended up spewing lots of errors about incorrectly sized extents although the extents were actually sized properly. Fix the updating of i_lenExtents to silence the errors. Fixes:b405c1e58b
("udf: refactor udf_next_aext() to handle error") CC: stable@vger.kernel.org Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
0d8d44db29
commit
55dd5b4db3
|
@ -115,7 +115,7 @@ void udf_truncate_tail_extent(struct inode *inode)
|
|||
}
|
||||
/* This inode entry is in-memory only and thus we don't have to mark
|
||||
* the inode dirty */
|
||||
if (ret == 0)
|
||||
if (ret >= 0)
|
||||
iinfo->i_lenExtents = inode->i_size;
|
||||
brelse(epos.bh);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user