f2fs: avoid buggy functions
This patch avoids to use a buggy function for now. It needs to fix them later. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
08b95126c7
commit
e19ef527aa
1 changed files with 18 additions and 0 deletions
|
@ -75,6 +75,14 @@ static inline unsigned long __reverse_ffs(unsigned long word)
|
|||
static unsigned long __find_rev_next_bit(const unsigned long *addr,
|
||||
unsigned long size, unsigned long offset)
|
||||
{
|
||||
while (!f2fs_test_bit(offset, (unsigned char *)addr))
|
||||
offset++;
|
||||
|
||||
if (offset > size)
|
||||
offset = size;
|
||||
|
||||
return offset;
|
||||
#if 0
|
||||
const unsigned long *p = addr + BIT_WORD(offset);
|
||||
unsigned long result = offset & ~(BITS_PER_LONG - 1);
|
||||
unsigned long tmp;
|
||||
|
@ -121,11 +129,20 @@ static unsigned long __find_rev_next_bit(const unsigned long *addr,
|
|||
return result + size; /* Nope. */
|
||||
found_middle:
|
||||
return result + __reverse_ffs(tmp);
|
||||
#endif
|
||||
}
|
||||
|
||||
static unsigned long __find_rev_next_zero_bit(const unsigned long *addr,
|
||||
unsigned long size, unsigned long offset)
|
||||
{
|
||||
while (f2fs_test_bit(offset, (unsigned char *)addr))
|
||||
offset++;
|
||||
|
||||
if (offset > size)
|
||||
offset = size;
|
||||
|
||||
return offset;
|
||||
#if 0
|
||||
const unsigned long *p = addr + BIT_WORD(offset);
|
||||
unsigned long result = offset & ~(BITS_PER_LONG - 1);
|
||||
unsigned long tmp;
|
||||
|
@ -173,6 +190,7 @@ static unsigned long __find_rev_next_zero_bit(const unsigned long *addr,
|
|||
return result + size; /* Nope. */
|
||||
found_middle:
|
||||
return result + __reverse_ffz(tmp);
|
||||
#endif
|
||||
}
|
||||
|
||||
void register_inmem_page(struct inode *inode, struct page *page)
|
||||
|
|
Loading…
Reference in a new issue