inode.c (db985cbd67c45f875ef43cb5febfaa8cbd203c27) | inode.c (a7ffdbe22cecaed59b5d76a5f003d68907d64240) |
---|---|
1/* 2 * fs/f2fs/inode.c 3 * 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com/ 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 55 unchanged lines hidden (view full) --- 64 cpu_to_le32(new_encode_dev(inode->i_rdev)); 65 ri->i_addr[2] = 0; 66 } 67 } 68} 69 70static int do_read_inode(struct inode *inode) 71{ | 1/* 2 * fs/f2fs/inode.c 3 * 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com/ 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 55 unchanged lines hidden (view full) --- 64 cpu_to_le32(new_encode_dev(inode->i_rdev)); 65 ri->i_addr[2] = 0; 66 } 67 } 68} 69 70static int do_read_inode(struct inode *inode) 71{ |
72 struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb); | 72 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); |
73 struct f2fs_inode_info *fi = F2FS_I(inode); 74 struct page *node_page; 75 struct f2fs_inode *ri; 76 77 /* Check if ino is within scope */ 78 if (check_nid_range(sbi, inode->i_ino)) { 79 f2fs_msg(inode->i_sb, KERN_ERR, "bad inode number: %lu", 80 (unsigned long) inode->i_ino); --- 132 unchanged lines hidden (view full) --- 213 set_cold_node(inode, node_page); 214 set_page_dirty(node_page); 215 216 clear_inode_flag(F2FS_I(inode), FI_DIRTY_INODE); 217} 218 219void update_inode_page(struct inode *inode) 220{ | 73 struct f2fs_inode_info *fi = F2FS_I(inode); 74 struct page *node_page; 75 struct f2fs_inode *ri; 76 77 /* Check if ino is within scope */ 78 if (check_nid_range(sbi, inode->i_ino)) { 79 f2fs_msg(inode->i_sb, KERN_ERR, "bad inode number: %lu", 80 (unsigned long) inode->i_ino); --- 132 unchanged lines hidden (view full) --- 213 set_cold_node(inode, node_page); 214 set_page_dirty(node_page); 215 216 clear_inode_flag(F2FS_I(inode), FI_DIRTY_INODE); 217} 218 219void update_inode_page(struct inode *inode) 220{ |
221 struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb); | 221 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); |
222 struct page *node_page; 223retry: 224 node_page = get_node_page(sbi, inode->i_ino); 225 if (IS_ERR(node_page)) { 226 int err = PTR_ERR(node_page); 227 if (err == -ENOMEM) { 228 cond_resched(); 229 goto retry; 230 } else if (err != -ENOENT) { 231 f2fs_stop_checkpoint(sbi); 232 } 233 return; 234 } 235 update_inode(inode, node_page); 236 f2fs_put_page(node_page, 1); 237} 238 239int f2fs_write_inode(struct inode *inode, struct writeback_control *wbc) 240{ | 222 struct page *node_page; 223retry: 224 node_page = get_node_page(sbi, inode->i_ino); 225 if (IS_ERR(node_page)) { 226 int err = PTR_ERR(node_page); 227 if (err == -ENOMEM) { 228 cond_resched(); 229 goto retry; 230 } else if (err != -ENOENT) { 231 f2fs_stop_checkpoint(sbi); 232 } 233 return; 234 } 235 update_inode(inode, node_page); 236 f2fs_put_page(node_page, 1); 237} 238 239int f2fs_write_inode(struct inode *inode, struct writeback_control *wbc) 240{ |
241 struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb); | 241 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); |
242 243 if (inode->i_ino == F2FS_NODE_INO(sbi) || 244 inode->i_ino == F2FS_META_INO(sbi)) 245 return 0; 246 247 if (!is_inode_flag_set(F2FS_I(inode), FI_DIRTY_INODE)) 248 return 0; 249 --- 11 unchanged lines hidden (view full) --- 261 return 0; 262} 263 264/* 265 * Called at the last iput() if i_nlink is zero 266 */ 267void f2fs_evict_inode(struct inode *inode) 268{ | 242 243 if (inode->i_ino == F2FS_NODE_INO(sbi) || 244 inode->i_ino == F2FS_META_INO(sbi)) 245 return 0; 246 247 if (!is_inode_flag_set(F2FS_I(inode), FI_DIRTY_INODE)) 248 return 0; 249 --- 11 unchanged lines hidden (view full) --- 261 return 0; 262} 263 264/* 265 * Called at the last iput() if i_nlink is zero 266 */ 267void f2fs_evict_inode(struct inode *inode) 268{ |
269 struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb); | 269 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); |
270 nid_t xnid = F2FS_I(inode)->i_xattr_nid; 271 272 trace_f2fs_evict_inode(inode); 273 truncate_inode_pages_final(&inode->i_data); 274 275 if (inode->i_ino == F2FS_NODE_INO(sbi) || 276 inode->i_ino == F2FS_META_INO(sbi)) 277 goto out_clear; 278 | 270 nid_t xnid = F2FS_I(inode)->i_xattr_nid; 271 272 trace_f2fs_evict_inode(inode); 273 truncate_inode_pages_final(&inode->i_data); 274 275 if (inode->i_ino == F2FS_NODE_INO(sbi) || 276 inode->i_ino == F2FS_META_INO(sbi)) 277 goto out_clear; 278 |
279 f2fs_bug_on(get_dirty_dents(inode)); | 279 f2fs_bug_on(sbi, get_dirty_pages(inode)); |
280 remove_dirty_dir_inode(inode); 281 282 if (inode->i_nlink || is_bad_inode(inode)) 283 goto no_delete; 284 285 sb_start_intwrite(inode->i_sb); 286 set_inode_flag(F2FS_I(inode), FI_NO_ALLOC); 287 i_size_write(inode, 0); --- 21 unchanged lines hidden --- | 280 remove_dirty_dir_inode(inode); 281 282 if (inode->i_nlink || is_bad_inode(inode)) 283 goto no_delete; 284 285 sb_start_intwrite(inode->i_sb); 286 set_inode_flag(F2FS_I(inode), FI_NO_ALLOC); 287 i_size_write(inode, 0); --- 21 unchanged lines hidden --- |