f2fs: set dentry bits on random location in memory
authorJaegeuk Kim <jaegeuk@kernel.org>
Wed, 31 Aug 2016 23:20:37 +0000 (16:20 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 8 Sep 2016 01:53:47 +0000 (18:53 -0700)
This fixes pointer panic when using inline_dentry, which was triggered when
backporting to 3.10.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/dir.c
fs/f2fs/inline.c

index 9316d8a0ed9531ea4794d600ec73ed1d20abcec0..2fb20fc583464cdae26a58dc75bec343eee688bf 100644 (file)
@@ -510,7 +510,7 @@ void f2fs_update_dentry(nid_t ino, umode_t mode, struct f2fs_dentry_ptr *d,
        de->ino = cpu_to_le32(ino);
        set_de_type(de, mode);
        for (i = 0; i < slots; i++) {
-               test_and_set_bit_le(bit_pos + i, (void *)d->bitmap);
+               __set_bit_le(bit_pos + i, (void *)d->bitmap);
                /* avoid wrong garbage data for readdir */
                if (i)
                        (de + i)->name_len = 0;
index 8a961072d6ae7bbc2cb9ddab2e361e7b7e6e19e6..4d526f3d04b2e69b8bb2bb16b356212c9d1c4f46 100644 (file)
@@ -566,7 +566,7 @@ void f2fs_delete_inline_entry(struct f2fs_dir_entry *dentry, struct page *page,
        inline_dentry = inline_data_addr(page);
        bit_pos = dentry - inline_dentry->dentry;
        for (i = 0; i < slots; i++)
-               test_and_clear_bit_le(bit_pos + i,
+               __clear_bit_le(bit_pos + i,
                                &inline_dentry->dentry_bitmap);
 
        set_page_dirty(page);
This page took 0.026775 seconds and 5 git commands to generate.