mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
udf: Fix directory iteration for longer tail extents
When directory's last extent has more that one block and its length is not multiple of a block side, the code wrongly decided to move to the next extent instead of processing the last partial block. This led to directory corruption. Fix the rounding issue. Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
ee454ad2fc
commit
1ea1cd11c7
@ -170,7 +170,7 @@ static struct buffer_head *udf_fiiter_bread_blk(struct udf_fileident_iter *iter)
|
||||
static int udf_fiiter_advance_blk(struct udf_fileident_iter *iter)
|
||||
{
|
||||
iter->loffset++;
|
||||
if (iter->loffset < iter->elen >> iter->dir->i_blkbits)
|
||||
if (iter->loffset < DIV_ROUND_UP(iter->elen, 1<<iter->dir->i_blkbits))
|
||||
return 0;
|
||||
|
||||
iter->loffset = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user