mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
ufs_free_fragments(): fix the braino in sanity check
The function expects that all fragments it's been asked to free will be within the same block. And it even has a sanity check verifying that - it takes the fragment number modulo the number of fragments per block, adds the count and checks if that's too high. Unfortunately, it misspells the upper limit - instead of ->s_fpb (fragments per block) it says ->s_fpg (fragments per cylinder group). So "too high" ends up being insanely lenient. Had been that way since 2.1.112, when UFS write support had been added. 27 years to spot a typo... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
c5df105f7d
commit
426f07ad3e
|
|
@ -50,7 +50,7 @@ void ufs_free_fragments(struct inode *inode, u64 fragment, unsigned count)
|
|||
UFSD("ENTER, fragment %llu, count %u\n",
|
||||
(unsigned long long)fragment, count);
|
||||
|
||||
if (ufs_fragnum(fragment) + count > uspi->s_fpg)
|
||||
if (ufs_fragnum(fragment) + count > uspi->s_fpb)
|
||||
ufs_error (sb, "ufs_free_fragments", "internal error");
|
||||
|
||||
mutex_lock(&UFS_SB(sb)->s_lock);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user