scoutfs: add lock arg to scoutfs_update_inode_item

Add a full lock argument to scoutfs_update_inode_item() and use it to
pass the lock's end key into item_update().  This'll get changed into
passing the full lock into _update soon.

Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
Zach Brown
2017-10-09 15:31:29 -07:00
committed by Mark Fasheh
parent 32a68e84cf
commit 0535e249d1
5 changed files with 17 additions and 17 deletions
+1 -1
View File
@@ -1175,7 +1175,7 @@ static int scoutfs_write_end(struct file *file, struct address_space *mapping,
scoutfs_inode_inc_data_version(inode);
}
/* XXX kind of a big hammer, inode life cycle needs work */
scoutfs_update_inode_item(inode);
scoutfs_update_inode_item(inode, NULL);
scoutfs_inode_queue_writeback(inode);
}
scoutfs_release_trans(sb);
+12 -12
View File
@@ -634,8 +634,8 @@ static int scoutfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode,
inc_nlink(dir);
}
scoutfs_update_inode_item(inode);
scoutfs_update_inode_item(dir);
scoutfs_update_inode_item(inode, inode_lock);
scoutfs_update_inode_item(dir, dir_lock);
insert_inode_hash(inode);
d_instantiate(dentry, inode);
@@ -712,8 +712,8 @@ static int scoutfs_link(struct dentry *old_dentry,
inode->i_ctime = dir->i_mtime;
inc_nlink(inode);
scoutfs_update_inode_item(inode);
scoutfs_update_inode_item(dir);
scoutfs_update_inode_item(inode, inode_lock);
scoutfs_update_inode_item(dir, dir_lock);
atomic_inc(&inode->i_count);
d_instantiate(dentry, inode);
@@ -792,8 +792,8 @@ static int scoutfs_unlink(struct inode *dir, struct dentry *dentry)
drop_nlink(dir);
drop_nlink(inode);
}
scoutfs_update_inode_item(inode);
scoutfs_update_inode_item(dir);
scoutfs_update_inode_item(inode, inode_lock);
scoutfs_update_inode_item(dir, dir_lock);
out:
scoutfs_release_trans(sb);
@@ -1000,8 +1000,8 @@ static int scoutfs_symlink(struct inode *dir, struct dentry *dentry,
inode->i_ctime = dir->i_mtime;
i_size_write(inode, name_len);
scoutfs_update_inode_item(inode);
scoutfs_update_inode_item(dir);
scoutfs_update_inode_item(inode, inode_lock);
scoutfs_update_inode_item(dir, dir_lock);
insert_inode_hash(inode);
/* XXX need to set i_op/fop before here for sec callbacks */
@@ -1477,12 +1477,12 @@ static int scoutfs_rename(struct inode *old_dir, struct dentry *old_dentry,
if (new_inode)
old_inode->i_ctime = now;
scoutfs_update_inode_item(old_dir);
scoutfs_update_inode_item(old_inode);
scoutfs_update_inode_item(old_dir, old_dir_lock);
scoutfs_update_inode_item(old_inode, old_inode_lock);
if (new_dir != old_dir)
scoutfs_update_inode_item(new_dir);
scoutfs_update_inode_item(new_dir, new_dir_lock);
if (new_inode)
scoutfs_update_inode_item(new_inode);
scoutfs_update_inode_item(new_inode, new_inode_lock);
ret = 0;
out:
+2 -2
View File
@@ -596,7 +596,7 @@ static int update_index(struct super_block *sb, struct scoutfs_inode_info *si,
* have to deal with errors and unwinding after they've modified the
* vfs inode and get here.
*/
void scoutfs_update_inode_item(struct inode *inode)
void scoutfs_update_inode_item(struct inode *inode, struct scoutfs_lock *lock)
{
struct scoutfs_inode_info *si = SCOUTFS_I(inode);
struct super_block *sb = inode->i_sb;
@@ -631,7 +631,7 @@ void scoutfs_update_inode_item(struct inode *inode)
scoutfs_inode_init_key(&key, &ikey, ino);
scoutfs_kvec_init(val, &sinode, sizeof(sinode));
err = scoutfs_item_update(sb, &key, val, NULL);
err = scoutfs_item_update(sb, &key, val, lock->end);
if (err) {
scoutfs_err(sb, "inode %llu update err %d", ino, err);
BUG_ON(err);
+1 -1
View File
@@ -62,7 +62,7 @@ int scoutfs_orphan_inode(struct inode *inode);
struct inode *scoutfs_iget(struct super_block *sb, u64 ino);
struct inode *scoutfs_ilookup(struct super_block *sb, u64 ino);
int scoutfs_dirty_inode_item(struct inode *inode, struct scoutfs_lock *lock);
void scoutfs_update_inode_item(struct inode *inode);
void scoutfs_update_inode_item(struct inode *inode, struct scoutfs_lock *lock);
void scoutfs_inode_fill_pool(struct super_block *sb, u64 ino, u64 nr);
int scoutfs_alloc_ino(struct super_block *sb, u64 *ino);
struct inode *scoutfs_new_inode(struct super_block *sb, struct inode *dir,
+1 -1
View File
@@ -327,7 +327,7 @@ static int scoutfs_xattr_set(struct dentry *dentry, const char *name,
/* XXX do these want i_mutex or anything? */
inode_inc_iversion(inode);
inode->i_ctime = CURRENT_TIME;
scoutfs_update_inode_item(inode);
scoutfs_update_inode_item(inode, lck);
}
up_write(&si->xattr_rwsem);