Commit bcbc8c64 authored by Ryusuke Konishi's avatar Ryusuke Konishi

nilfs2: do not pass sbi to functions which can get it from inode

This removes argument for passing nilfs_sb_info structure from
nilfs_set_file_dirty and nilfs_load_inode_block functions.  We can get
a pointer to the structure from inodes.

[Stephen Rothwell <sfr@canb.auug.org.au>: fix conflict with commit
 b74c79e9]
Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
parent 06df0f99
...@@ -91,7 +91,6 @@ static void nilfs_commit_chunk(struct page *page, ...@@ -91,7 +91,6 @@ static void nilfs_commit_chunk(struct page *page,
unsigned from, unsigned to) unsigned from, unsigned to)
{ {
struct inode *dir = mapping->host; struct inode *dir = mapping->host;
struct nilfs_sb_info *sbi = NILFS_SB(dir->i_sb);
loff_t pos = page_offset(page) + from; loff_t pos = page_offset(page) + from;
unsigned len = to - from; unsigned len = to - from;
unsigned nr_dirty, copied; unsigned nr_dirty, copied;
...@@ -103,7 +102,7 @@ static void nilfs_commit_chunk(struct page *page, ...@@ -103,7 +102,7 @@ static void nilfs_commit_chunk(struct page *page,
i_size_write(dir, pos + copied); i_size_write(dir, pos + copied);
if (IS_DIRSYNC(dir)) if (IS_DIRSYNC(dir))
nilfs_set_transaction_flag(NILFS_TI_SYNC); nilfs_set_transaction_flag(NILFS_TI_SYNC);
err = nilfs_set_file_dirty(sbi, dir, nr_dirty); err = nilfs_set_file_dirty(dir, nr_dirty);
WARN_ON(err); /* do not happen */ WARN_ON(err); /* do not happen */
unlock_page(page); unlock_page(page);
} }
......
...@@ -181,10 +181,9 @@ static int nilfs_set_page_dirty(struct page *page) ...@@ -181,10 +181,9 @@ static int nilfs_set_page_dirty(struct page *page)
if (ret) { if (ret) {
struct inode *inode = page->mapping->host; struct inode *inode = page->mapping->host;
struct nilfs_sb_info *sbi = NILFS_SB(inode->i_sb);
unsigned nr_dirty = 1 << (PAGE_SHIFT - inode->i_blkbits); unsigned nr_dirty = 1 << (PAGE_SHIFT - inode->i_blkbits);
nilfs_set_file_dirty(sbi, inode, nr_dirty); nilfs_set_file_dirty(inode, nr_dirty);
} }
return ret; return ret;
} }
...@@ -225,7 +224,7 @@ static int nilfs_write_end(struct file *file, struct address_space *mapping, ...@@ -225,7 +224,7 @@ static int nilfs_write_end(struct file *file, struct address_space *mapping,
start + copied); start + copied);
copied = generic_write_end(file, mapping, pos, len, copied, page, copied = generic_write_end(file, mapping, pos, len, copied, page,
fsdata); fsdata);
nilfs_set_file_dirty(NILFS_SB(inode->i_sb), inode, nr_dirty); nilfs_set_file_dirty(inode, nr_dirty);
err = nilfs_transaction_commit(inode->i_sb); err = nilfs_transaction_commit(inode->i_sb);
return err ? : copied; return err ? : copied;
} }
...@@ -674,7 +673,7 @@ void nilfs_truncate(struct inode *inode) ...@@ -674,7 +673,7 @@ void nilfs_truncate(struct inode *inode)
nilfs_set_transaction_flag(NILFS_TI_SYNC); nilfs_set_transaction_flag(NILFS_TI_SYNC);
nilfs_mark_inode_dirty(inode); nilfs_mark_inode_dirty(inode);
nilfs_set_file_dirty(NILFS_SB(sb), inode, 0); nilfs_set_file_dirty(inode, 0);
nilfs_transaction_commit(sb); nilfs_transaction_commit(sb);
/* May construct a logical segment and may fail in sync mode. /* May construct a logical segment and may fail in sync mode.
But truncate has no return value. */ But truncate has no return value. */
...@@ -792,9 +791,9 @@ int nilfs_permission(struct inode *inode, int mask, unsigned int flags) ...@@ -792,9 +791,9 @@ int nilfs_permission(struct inode *inode, int mask, unsigned int flags)
return generic_permission(inode, mask, flags, NULL); return generic_permission(inode, mask, flags, NULL);
} }
int nilfs_load_inode_block(struct nilfs_sb_info *sbi, struct inode *inode, int nilfs_load_inode_block(struct inode *inode, struct buffer_head **pbh)
struct buffer_head **pbh)
{ {
struct nilfs_sb_info *sbi = NILFS_SB(inode->i_sb);
struct nilfs_inode_info *ii = NILFS_I(inode); struct nilfs_inode_info *ii = NILFS_I(inode);
int err; int err;
...@@ -835,9 +834,9 @@ int nilfs_inode_dirty(struct inode *inode) ...@@ -835,9 +834,9 @@ int nilfs_inode_dirty(struct inode *inode)
return ret; return ret;
} }
int nilfs_set_file_dirty(struct nilfs_sb_info *sbi, struct inode *inode, int nilfs_set_file_dirty(struct inode *inode, unsigned nr_dirty)
unsigned nr_dirty)
{ {
struct nilfs_sb_info *sbi = NILFS_SB(inode->i_sb);
struct nilfs_inode_info *ii = NILFS_I(inode); struct nilfs_inode_info *ii = NILFS_I(inode);
atomic_add(nr_dirty, &sbi->s_nilfs->ns_ndirtyblks); atomic_add(nr_dirty, &sbi->s_nilfs->ns_ndirtyblks);
...@@ -870,11 +869,10 @@ int nilfs_set_file_dirty(struct nilfs_sb_info *sbi, struct inode *inode, ...@@ -870,11 +869,10 @@ int nilfs_set_file_dirty(struct nilfs_sb_info *sbi, struct inode *inode,
int nilfs_mark_inode_dirty(struct inode *inode) int nilfs_mark_inode_dirty(struct inode *inode)
{ {
struct nilfs_sb_info *sbi = NILFS_SB(inode->i_sb);
struct buffer_head *ibh; struct buffer_head *ibh;
int err; int err;
err = nilfs_load_inode_block(sbi, inode, &ibh); err = nilfs_load_inode_block(inode, &ibh);
if (unlikely(err)) { if (unlikely(err)) {
nilfs_warning(inode->i_sb, __func__, nilfs_warning(inode->i_sb, __func__,
"failed to reget inode block.\n"); "failed to reget inode block.\n");
......
...@@ -257,11 +257,9 @@ extern void nilfs_truncate(struct inode *); ...@@ -257,11 +257,9 @@ extern void nilfs_truncate(struct inode *);
extern void nilfs_evict_inode(struct inode *); extern void nilfs_evict_inode(struct inode *);
extern int nilfs_setattr(struct dentry *, struct iattr *); extern int nilfs_setattr(struct dentry *, struct iattr *);
int nilfs_permission(struct inode *inode, int mask, unsigned int flags); int nilfs_permission(struct inode *inode, int mask, unsigned int flags);
extern int nilfs_load_inode_block(struct nilfs_sb_info *, struct inode *, int nilfs_load_inode_block(struct inode *inode, struct buffer_head **pbh);
struct buffer_head **);
extern int nilfs_inode_dirty(struct inode *); extern int nilfs_inode_dirty(struct inode *);
extern int nilfs_set_file_dirty(struct nilfs_sb_info *, struct inode *, int nilfs_set_file_dirty(struct inode *inode, unsigned nr_dirty);
unsigned);
extern int nilfs_mark_inode_dirty(struct inode *); extern int nilfs_mark_inode_dirty(struct inode *);
extern void nilfs_dirty_inode(struct inode *); extern void nilfs_dirty_inode(struct inode *);
int nilfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, int nilfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
......
...@@ -535,7 +535,7 @@ static int nilfs_recover_dsync_blocks(struct the_nilfs *nilfs, ...@@ -535,7 +535,7 @@ static int nilfs_recover_dsync_blocks(struct the_nilfs *nilfs,
if (unlikely(err)) if (unlikely(err))
goto failed_page; goto failed_page;
err = nilfs_set_file_dirty(sbi, inode, 1); err = nilfs_set_file_dirty(inode, 1);
if (unlikely(err)) if (unlikely(err))
goto failed_page; goto failed_page;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment