projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[firefly-linux-kernel-4.4.55.git]
/
fs
/
f2fs
/
recovery.c
diff --git
a/fs/f2fs/recovery.c
b/fs/f2fs/recovery.c
index faec2ca004b9e8266a8080a36a44dcc8f6b601b4..cbf74f47cce8ad9005bf8486df4435c79e0b6b04 100644
(file)
--- a/
fs/f2fs/recovery.c
+++ b/
fs/f2fs/recovery.c
@@
-180,7
+180,7
@@
static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head)
curseg = CURSEG_I(sbi, CURSEG_WARM_NODE);
blkaddr = NEXT_FREE_BLKADDR(sbi, curseg);
curseg = CURSEG_I(sbi, CURSEG_WARM_NODE);
blkaddr = NEXT_FREE_BLKADDR(sbi, curseg);
- ra_meta_pages(sbi, blkaddr, 1, META_POR);
+ ra_meta_pages(sbi, blkaddr, 1, META_POR
, true
);
while (1) {
struct fsync_inode_entry *entry;
while (1) {
struct fsync_inode_entry *entry;
@@
-188,7
+188,7
@@
static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head)
if (!is_valid_blkaddr(sbi, blkaddr, META_POR))
return 0;
if (!is_valid_blkaddr(sbi, blkaddr, META_POR))
return 0;
- page = get_
meta
_page(sbi, blkaddr);
+ page = get_
tmp
_page(sbi, blkaddr);
if (cp_ver != cpver_of_node(page))
break;
if (cp_ver != cpver_of_node(page))
break;
@@
-383,15
+383,11
@@
static int do_recover_data(struct f2fs_sb_info *sbi, struct inode *inode,
start = start_bidx_of_node(ofs_of_node(page), fi);
end = start + ADDRS_PER_PAGE(page, fi);
start = start_bidx_of_node(ofs_of_node(page), fi);
end = start + ADDRS_PER_PAGE(page, fi);
- f2fs_lock_op(sbi);
-
set_new_dnode(&dn, inode, NULL, NULL, 0);
err = get_dnode_of_data(&dn, start, ALLOC_NODE);
set_new_dnode(&dn, inode, NULL, NULL, 0);
err = get_dnode_of_data(&dn, start, ALLOC_NODE);
- if (err) {
- f2fs_unlock_op(sbi);
+ if (err)
goto out;
goto out;
- }
f2fs_wait_on_page_writeback(dn.node_page, NODE);
f2fs_wait_on_page_writeback(dn.node_page, NODE);
@@
-456,7
+452,6
@@
static int do_recover_data(struct f2fs_sb_info *sbi, struct inode *inode,
set_page_dirty(dn.node_page);
err:
f2fs_put_dnode(&dn);
set_page_dirty(dn.node_page);
err:
f2fs_put_dnode(&dn);
- f2fs_unlock_op(sbi);
out:
f2fs_msg(sbi->sb, KERN_NOTICE,
"recover_data: ino = %lx, recovered = %d blocks, err = %d",
out:
f2fs_msg(sbi->sb, KERN_NOTICE,
"recover_data: ino = %lx, recovered = %d blocks, err = %d",
@@
-485,7
+480,7
@@
static int recover_data(struct f2fs_sb_info *sbi,
ra_meta_pages_cond(sbi, blkaddr);
ra_meta_pages_cond(sbi, blkaddr);
- page = get_
meta
_page(sbi, blkaddr);
+ page = get_
tmp
_page(sbi, blkaddr);
if (cp_ver != cpver_of_node(page)) {
f2fs_put_page(page, 1);
if (cp_ver != cpver_of_node(page)) {
f2fs_put_page(page, 1);
@@
-570,7
+565,7
@@
out:
/* truncate meta pages to be used by the recovery */
truncate_inode_pages_range(META_MAPPING(sbi),
/* truncate meta pages to be used by the recovery */
truncate_inode_pages_range(META_MAPPING(sbi),
- MAIN_BLKADDR(sbi) << PAGE_CACHE_SHIFT, -1);
+
(loff_t)
MAIN_BLKADDR(sbi) << PAGE_CACHE_SHIFT, -1);
if (err) {
truncate_inode_pages_final(NODE_MAPPING(sbi));
if (err) {
truncate_inode_pages_final(NODE_MAPPING(sbi));