Loading fs/sysv/dir.c +11 −17 Original line number Diff line number Diff line Loading @@ -28,12 +28,6 @@ const struct file_operations sysv_dir_operations = { .fsync = generic_file_fsync, }; inline void dir_put_page(struct page *page, void *page_addr) { kunmap_local(page_addr); put_page(page); } static void dir_commit_chunk(struct page *page, loff_t pos, unsigned len) { struct address_space *mapping = page->mapping; Loading @@ -58,7 +52,7 @@ static int sysv_handle_dirsync(struct inode *dir) } /* * Calls to dir_get_page()/dir_put_page() must be nested according to the * Calls to dir_get_page()/put_and_unmap_page() must be nested according to the * rules documented in mm/highmem.rst. * * NOTE: sysv_find_entry() and sysv_dotdot() act as calls to dir_get_page() Loading Loading @@ -109,11 +103,11 @@ static int sysv_readdir(struct file *file, struct dir_context *ctx) if (!dir_emit(ctx, name, strnlen(name,SYSV_NAMELEN), fs16_to_cpu(SYSV_SB(sb), de->inode), DT_UNKNOWN)) { dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); return 0; } } dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); } return 0; } Loading @@ -137,7 +131,7 @@ static inline int namecompare(int len, int maxlen, * itself (as a parameter - res_dir). It does NOT read the inode of the * entry - you'll have to do that yourself if you want to. * * On Success dir_put_page() should be called on *res_page. * On Success put_and_unmap_page() should be called on *res_page. * * sysv_find_entry() acts as a call to dir_get_page() and must be treated * accordingly for nesting purposes. Loading Loading @@ -172,7 +166,7 @@ struct sysv_dir_entry *sysv_find_entry(struct dentry *dentry, struct page **res_ name, de->name)) goto found; } dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); } if (++n >= npages) Loading Loading @@ -215,7 +209,7 @@ int sysv_add_link(struct dentry *dentry, struct inode *inode) goto out_page; de++; } dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); } BUG(); return -EINVAL; Loading @@ -234,7 +228,7 @@ int sysv_add_link(struct dentry *dentry, struct inode *inode) mark_inode_dirty(dir); err = sysv_handle_dirsync(dir); out_page: dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); return err; out_unlock: unlock_page(page); Loading Loading @@ -327,12 +321,12 @@ int sysv_empty_dir(struct inode * inode) if (de->name[1] != '.' || de->name[2]) goto not_empty; } dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); } return 1; not_empty: dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); return 0; } Loading @@ -358,7 +352,7 @@ int sysv_set_link(struct sysv_dir_entry *de, struct page *page, } /* * Calls to dir_get_page()/dir_put_page() must be nested according to the * Calls to dir_get_page()/put_and_unmap_page() must be nested according to the * rules documented in mm/highmem.rst. * * sysv_dotdot() acts as a call to dir_get_page() and must be treated Loading @@ -382,7 +376,7 @@ ino_t sysv_inode_by_name(struct dentry *dentry) if (de) { res = fs16_to_cpu(SYSV_SB(dentry->d_sb), de->inode); dir_put_page(page, de); put_and_unmap_page(page, de); } return res; } fs/sysv/namei.c +4 −4 Original line number Diff line number Diff line Loading @@ -164,7 +164,7 @@ static int sysv_unlink(struct inode * dir, struct dentry * dentry) inode->i_ctime = dir->i_ctime; inode_dec_link_count(inode); } dir_put_page(page, de); put_and_unmap_page(page, de); return err; } Loading Loading @@ -227,7 +227,7 @@ static int sysv_rename(struct mnt_idmap *idmap, struct inode *old_dir, if (!new_de) goto out_dir; err = sysv_set_link(new_de, new_page, old_inode); dir_put_page(new_page, new_de); put_and_unmap_page(new_page, new_de); if (err) goto out_dir; new_inode->i_ctime = current_time(new_inode); Loading Loading @@ -256,9 +256,9 @@ static int sysv_rename(struct mnt_idmap *idmap, struct inode *old_dir, out_dir: if (dir_de) dir_put_page(dir_page, dir_de); put_and_unmap_page(dir_page, dir_de); out_old: dir_put_page(old_page, old_de); put_and_unmap_page(old_page, old_de); out: return err; } Loading fs/sysv/sysv.h +0 −1 Original line number Diff line number Diff line Loading @@ -148,7 +148,6 @@ extern void sysv_destroy_icache(void); /* dir.c */ extern void dir_put_page(struct page *page, void *vaddr); extern struct sysv_dir_entry *sysv_find_entry(struct dentry *, struct page **); extern int sysv_add_link(struct dentry *, struct inode *); extern int sysv_delete_entry(struct sysv_dir_entry *, struct page *); Loading Loading
fs/sysv/dir.c +11 −17 Original line number Diff line number Diff line Loading @@ -28,12 +28,6 @@ const struct file_operations sysv_dir_operations = { .fsync = generic_file_fsync, }; inline void dir_put_page(struct page *page, void *page_addr) { kunmap_local(page_addr); put_page(page); } static void dir_commit_chunk(struct page *page, loff_t pos, unsigned len) { struct address_space *mapping = page->mapping; Loading @@ -58,7 +52,7 @@ static int sysv_handle_dirsync(struct inode *dir) } /* * Calls to dir_get_page()/dir_put_page() must be nested according to the * Calls to dir_get_page()/put_and_unmap_page() must be nested according to the * rules documented in mm/highmem.rst. * * NOTE: sysv_find_entry() and sysv_dotdot() act as calls to dir_get_page() Loading Loading @@ -109,11 +103,11 @@ static int sysv_readdir(struct file *file, struct dir_context *ctx) if (!dir_emit(ctx, name, strnlen(name,SYSV_NAMELEN), fs16_to_cpu(SYSV_SB(sb), de->inode), DT_UNKNOWN)) { dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); return 0; } } dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); } return 0; } Loading @@ -137,7 +131,7 @@ static inline int namecompare(int len, int maxlen, * itself (as a parameter - res_dir). It does NOT read the inode of the * entry - you'll have to do that yourself if you want to. * * On Success dir_put_page() should be called on *res_page. * On Success put_and_unmap_page() should be called on *res_page. * * sysv_find_entry() acts as a call to dir_get_page() and must be treated * accordingly for nesting purposes. Loading Loading @@ -172,7 +166,7 @@ struct sysv_dir_entry *sysv_find_entry(struct dentry *dentry, struct page **res_ name, de->name)) goto found; } dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); } if (++n >= npages) Loading Loading @@ -215,7 +209,7 @@ int sysv_add_link(struct dentry *dentry, struct inode *inode) goto out_page; de++; } dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); } BUG(); return -EINVAL; Loading @@ -234,7 +228,7 @@ int sysv_add_link(struct dentry *dentry, struct inode *inode) mark_inode_dirty(dir); err = sysv_handle_dirsync(dir); out_page: dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); return err; out_unlock: unlock_page(page); Loading Loading @@ -327,12 +321,12 @@ int sysv_empty_dir(struct inode * inode) if (de->name[1] != '.' || de->name[2]) goto not_empty; } dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); } return 1; not_empty: dir_put_page(page, kaddr); put_and_unmap_page(page, kaddr); return 0; } Loading @@ -358,7 +352,7 @@ int sysv_set_link(struct sysv_dir_entry *de, struct page *page, } /* * Calls to dir_get_page()/dir_put_page() must be nested according to the * Calls to dir_get_page()/put_and_unmap_page() must be nested according to the * rules documented in mm/highmem.rst. * * sysv_dotdot() acts as a call to dir_get_page() and must be treated Loading @@ -382,7 +376,7 @@ ino_t sysv_inode_by_name(struct dentry *dentry) if (de) { res = fs16_to_cpu(SYSV_SB(dentry->d_sb), de->inode); dir_put_page(page, de); put_and_unmap_page(page, de); } return res; }
fs/sysv/namei.c +4 −4 Original line number Diff line number Diff line Loading @@ -164,7 +164,7 @@ static int sysv_unlink(struct inode * dir, struct dentry * dentry) inode->i_ctime = dir->i_ctime; inode_dec_link_count(inode); } dir_put_page(page, de); put_and_unmap_page(page, de); return err; } Loading Loading @@ -227,7 +227,7 @@ static int sysv_rename(struct mnt_idmap *idmap, struct inode *old_dir, if (!new_de) goto out_dir; err = sysv_set_link(new_de, new_page, old_inode); dir_put_page(new_page, new_de); put_and_unmap_page(new_page, new_de); if (err) goto out_dir; new_inode->i_ctime = current_time(new_inode); Loading Loading @@ -256,9 +256,9 @@ static int sysv_rename(struct mnt_idmap *idmap, struct inode *old_dir, out_dir: if (dir_de) dir_put_page(dir_page, dir_de); put_and_unmap_page(dir_page, dir_de); out_old: dir_put_page(old_page, old_de); put_and_unmap_page(old_page, old_de); out: return err; } Loading
fs/sysv/sysv.h +0 −1 Original line number Diff line number Diff line Loading @@ -148,7 +148,6 @@ extern void sysv_destroy_icache(void); /* dir.c */ extern void dir_put_page(struct page *page, void *vaddr); extern struct sysv_dir_entry *sysv_find_entry(struct dentry *, struct page **); extern int sysv_add_link(struct dentry *, struct inode *); extern int sysv_delete_entry(struct sysv_dir_entry *, struct page *); Loading