Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

f2fs: fix to wait correct block type

The inode page needs to wait NODE block io.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

+4 -3
+2 -1
fs/f2fs/dir.c
··· 283 283 void f2fs_set_link(struct inode *dir, struct f2fs_dir_entry *de, 284 284 struct page *page, struct inode *inode) 285 285 { 286 + enum page_type type = f2fs_has_inline_dentry(dir) ? NODE : DATA; 286 287 lock_page(page); 287 - f2fs_wait_on_page_writeback(page, DATA); 288 + f2fs_wait_on_page_writeback(page, type); 288 289 de->ino = cpu_to_le32(inode->i_ino); 289 290 set_de_type(de, inode); 290 291 if (!f2fs_has_inline_dentry(dir))
+2 -2
fs/f2fs/inline.c
··· 427 427 goto out; 428 428 } 429 429 430 - f2fs_wait_on_page_writeback(ipage, DATA); 430 + f2fs_wait_on_page_writeback(ipage, NODE); 431 431 432 432 down_write(&F2FS_I(inode)->i_sem); 433 433 page = init_inode_metadata(inode, dir, name); ··· 472 472 int i; 473 473 474 474 lock_page(page); 475 - f2fs_wait_on_page_writeback(page, DATA); 475 + f2fs_wait_on_page_writeback(page, NODE); 476 476 477 477 inline_dentry = inline_data_addr(page); 478 478 bit_pos = dentry - inline_dentry->dentry;