mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Coccinelle-based conversion to use ->i_state accessors
All places were patched by coccinelle with the default expecting that ->i_lock is held, afterwards entries got fixed up by hand to use unlocked variants as needed. The script: @@ expression inode, flags; @@ - inode->i_state & flags + inode_state_read(inode) & flags @@ expression inode, flags; @@ - inode->i_state &= ~flags + inode_state_clear(inode, flags) @@ expression inode, flag1, flag2; @@ - inode->i_state &= ~flag1 & ~flag2 + inode_state_clear(inode, flag1 | flag2) @@ expression inode, flags; @@ - inode->i_state |= flags + inode_state_set(inode, flags) @@ expression inode, flags; @@ - inode->i_state = flags + inode_state_assign(inode, flags) @@ expression inode, flags; @@ - flags = inode->i_state + flags = inode_state_read(inode) @@ expression inode, flags; @@ - READ_ONCE(inode->i_state) & flags + inode_state_read(inode) & flags Signed-off-by: Mateusz Guzik <mjguzik@gmail.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
+2
-2
@@ -67,7 +67,7 @@ static void bdev_write_inode(struct block_device *bdev)
|
||||
int ret;
|
||||
|
||||
spin_lock(&inode->i_lock);
|
||||
while (inode->i_state & I_DIRTY) {
|
||||
while (inode_state_read(inode) & I_DIRTY) {
|
||||
spin_unlock(&inode->i_lock);
|
||||
ret = write_inode_now(inode, true);
|
||||
if (ret)
|
||||
@@ -1265,7 +1265,7 @@ void sync_bdevs(bool wait)
|
||||
struct block_device *bdev;
|
||||
|
||||
spin_lock(&inode->i_lock);
|
||||
if (inode->i_state & (I_FREEING|I_WILL_FREE|I_NEW) ||
|
||||
if (inode_state_read(inode) & (I_FREEING | I_WILL_FREE | I_NEW) ||
|
||||
mapping->nrpages == 0) {
|
||||
spin_unlock(&inode->i_lock);
|
||||
continue;
|
||||
|
||||
+1
-1
@@ -433,7 +433,7 @@ static struct dax_device *dax_dev_get(dev_t devt)
|
||||
return NULL;
|
||||
|
||||
dax_dev = to_dax_dev(inode);
|
||||
if (inode->i_state & I_NEW) {
|
||||
if (inode_state_read_once(inode) & I_NEW) {
|
||||
set_bit(DAXDEV_ALIVE, &dax_dev->flags);
|
||||
inode->i_cdev = &dax_dev->cdev;
|
||||
inode->i_mode = S_IFCHR;
|
||||
|
||||
+1
-1
@@ -422,7 +422,7 @@ static struct inode *v9fs_qid_iget(struct super_block *sb,
|
||||
inode = iget5_locked(sb, QID2INO(qid), test, v9fs_set_inode, st);
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
if (!(inode->i_state & I_NEW))
|
||||
if (!(inode_state_read_once(inode) & I_NEW))
|
||||
return inode;
|
||||
/*
|
||||
* initialize the inode with the stat info
|
||||
|
||||
@@ -112,7 +112,7 @@ static struct inode *v9fs_qid_iget_dotl(struct super_block *sb,
|
||||
inode = iget5_locked(sb, QID2INO(qid), test, v9fs_set_inode_dotl, st);
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
if (!(inode->i_state & I_NEW))
|
||||
if (!(inode_state_read_once(inode) & I_NEW))
|
||||
return inode;
|
||||
/*
|
||||
* initialize the inode with the stat info
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ struct inode *affs_iget(struct super_block *sb, unsigned long ino)
|
||||
inode = iget_locked(sb, ino);
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
if (!(inode->i_state & I_NEW))
|
||||
if (!(inode_state_read_once(inode) & I_NEW))
|
||||
return inode;
|
||||
|
||||
pr_debug("affs_iget(%lu)\n", inode->i_ino);
|
||||
|
||||
+3
-3
@@ -64,7 +64,7 @@ static struct inode *afs_iget_pseudo_dir(struct super_block *sb, ino_t ino)
|
||||
|
||||
vnode = AFS_FS_I(inode);
|
||||
|
||||
if (inode->i_state & I_NEW) {
|
||||
if (inode_state_read_once(inode) & I_NEW) {
|
||||
netfs_inode_init(&vnode->netfs, NULL, false);
|
||||
simple_inode_init_ts(inode);
|
||||
set_nlink(inode, 2);
|
||||
@@ -258,7 +258,7 @@ static struct dentry *afs_lookup_atcell(struct inode *dir, struct dentry *dentry
|
||||
|
||||
vnode = AFS_FS_I(inode);
|
||||
|
||||
if (inode->i_state & I_NEW) {
|
||||
if (inode_state_read_once(inode) & I_NEW) {
|
||||
netfs_inode_init(&vnode->netfs, NULL, false);
|
||||
simple_inode_init_ts(inode);
|
||||
set_nlink(inode, 1);
|
||||
@@ -383,7 +383,7 @@ struct inode *afs_dynroot_iget_root(struct super_block *sb)
|
||||
vnode = AFS_FS_I(inode);
|
||||
|
||||
/* there shouldn't be an existing inode */
|
||||
if (inode->i_state & I_NEW) {
|
||||
if (inode_state_read_once(inode) & I_NEW) {
|
||||
netfs_inode_init(&vnode->netfs, NULL, false);
|
||||
simple_inode_init_ts(inode);
|
||||
set_nlink(inode, 2);
|
||||
|
||||
+3
-3
@@ -579,7 +579,7 @@ struct inode *afs_iget(struct afs_operation *op, struct afs_vnode_param *vp)
|
||||
inode, vnode->fid.vid, vnode->fid.vnode, vnode->fid.unique);
|
||||
|
||||
/* deal with an existing inode */
|
||||
if (!(inode->i_state & I_NEW)) {
|
||||
if (!(inode_state_read_once(inode) & I_NEW)) {
|
||||
_leave(" = %p", inode);
|
||||
return inode;
|
||||
}
|
||||
@@ -639,7 +639,7 @@ struct inode *afs_root_iget(struct super_block *sb, struct key *key)
|
||||
|
||||
_debug("GOT ROOT INODE %p { vl=%llx }", inode, as->volume->vid);
|
||||
|
||||
BUG_ON(!(inode->i_state & I_NEW));
|
||||
BUG_ON(!(inode_state_read_once(inode) & I_NEW));
|
||||
|
||||
vnode = AFS_FS_I(inode);
|
||||
vnode->cb_v_check = atomic_read(&as->volume->cb_v_break);
|
||||
@@ -748,7 +748,7 @@ void afs_evict_inode(struct inode *inode)
|
||||
|
||||
if ((S_ISDIR(inode->i_mode) ||
|
||||
S_ISLNK(inode->i_mode)) &&
|
||||
(inode->i_state & I_DIRTY) &&
|
||||
(inode_state_read_once(inode) & I_DIRTY) &&
|
||||
!sbi->dyn_root) {
|
||||
struct writeback_control wbc = {
|
||||
.sync_mode = WB_SYNC_ALL,
|
||||
|
||||
+1
-1
@@ -307,7 +307,7 @@ static struct inode *befs_iget(struct super_block *sb, unsigned long ino)
|
||||
inode = iget_locked(sb, ino);
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
if (!(inode->i_state & I_NEW))
|
||||
if (!(inode_state_read_once(inode) & I_NEW))
|
||||
return inode;
|
||||
|
||||
befs_ino = BEFS_I(inode);
|
||||
|
||||
+1
-1
@@ -42,7 +42,7 @@ struct inode *bfs_iget(struct super_block *sb, unsigned long ino)
|
||||
inode = iget_locked(sb, ino);
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
if (!(inode->i_state & I_NEW))
|
||||
if (!(inode_state_read_once(inode) & I_NEW))
|
||||
return inode;
|
||||
|
||||
if ((ino < BFS_ROOT_INO) || (ino > BFS_SB(inode->i_sb)->si_lasti)) {
|
||||
|
||||
+2
-2
@@ -611,9 +611,9 @@ int generic_buffers_fsync_noflush(struct file *file, loff_t start, loff_t end,
|
||||
return err;
|
||||
|
||||
ret = sync_mapping_buffers(inode->i_mapping);
|
||||
if (!(inode->i_state & I_DIRTY_ALL))
|
||||
if (!(inode_state_read_once(inode) & I_DIRTY_ALL))
|
||||
goto out;
|
||||
if (datasync && !(inode->i_state & I_DIRTY_DATASYNC))
|
||||
if (datasync && !(inode_state_read_once(inode) & I_DIRTY_DATASYNC))
|
||||
goto out;
|
||||
|
||||
err = sync_inode_metadata(inode, 1);
|
||||
|
||||
+2
-2
@@ -70,7 +70,7 @@ retry:
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
if (inode->i_state & I_NEW) {
|
||||
if (inode_state_read_once(inode) & I_NEW) {
|
||||
cii = ITOC(inode);
|
||||
/* we still need to set i_ino for things like stat(2) */
|
||||
inode->i_ino = hash;
|
||||
@@ -148,7 +148,7 @@ struct inode *coda_fid_to_inode(struct CodaFid *fid, struct super_block *sb)
|
||||
|
||||
/* we should never see newly created inodes because we intentionally
|
||||
* fail in the initialization callback */
|
||||
BUG_ON(inode->i_state & I_NEW);
|
||||
BUG_ON(inode_state_read_once(inode) & I_NEW);
|
||||
|
||||
return inode;
|
||||
}
|
||||
|
||||
+1
-1
@@ -95,7 +95,7 @@ static struct inode *get_cramfs_inode(struct super_block *sb,
|
||||
inode = iget_locked(sb, cramino(cramfs_inode, offset));
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
if (!(inode->i_state & I_NEW))
|
||||
if (!(inode_state_read_once(inode) & I_NEW))
|
||||
return inode;
|
||||
|
||||
switch (cramfs_inode->mode & S_IFMT) {
|
||||
|
||||
+1
-1
@@ -945,7 +945,7 @@ static void evict_dentries_for_decrypted_inodes(struct fscrypt_master_key *mk)
|
||||
list_for_each_entry(ci, &mk->mk_decrypted_inodes, ci_master_key_link) {
|
||||
inode = ci->ci_inode;
|
||||
spin_lock(&inode->i_lock);
|
||||
if (inode->i_state & (I_FREEING | I_WILL_FREE | I_NEW)) {
|
||||
if (inode_state_read(inode) & (I_FREEING | I_WILL_FREE | I_NEW)) {
|
||||
spin_unlock(&inode->i_lock);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -834,7 +834,7 @@ int fscrypt_drop_inode(struct inode *inode)
|
||||
* userspace is still using the files, inodes can be dirtied between
|
||||
* then and now. We mustn't lose any writes, so skip dirty inodes here.
|
||||
*/
|
||||
if (inode->i_state & I_DIRTY_ALL)
|
||||
if (inode_state_read(inode) & I_DIRTY_ALL)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
|
||||
+4
-4
@@ -794,7 +794,7 @@ void d_mark_dontcache(struct inode *inode)
|
||||
de->d_flags |= DCACHE_DONTCACHE;
|
||||
spin_unlock(&de->d_lock);
|
||||
}
|
||||
inode->i_state |= I_DONTCACHE;
|
||||
inode_state_set(inode, I_DONTCACHE);
|
||||
spin_unlock(&inode->i_lock);
|
||||
}
|
||||
EXPORT_SYMBOL(d_mark_dontcache);
|
||||
@@ -1073,7 +1073,7 @@ struct dentry *d_find_alias_rcu(struct inode *inode)
|
||||
spin_lock(&inode->i_lock);
|
||||
// ->i_dentry and ->i_rcu are colocated, but the latter won't be
|
||||
// used without having I_FREEING set, which means no aliases left
|
||||
if (likely(!(inode->i_state & I_FREEING) && !hlist_empty(l))) {
|
||||
if (likely(!(inode_state_read(inode) & I_FREEING) && !hlist_empty(l))) {
|
||||
if (S_ISDIR(inode->i_mode)) {
|
||||
de = hlist_entry(l->first, struct dentry, d_u.d_alias);
|
||||
} else {
|
||||
@@ -1980,12 +1980,12 @@ void d_instantiate_new(struct dentry *entry, struct inode *inode)
|
||||
security_d_instantiate(entry, inode);
|
||||
spin_lock(&inode->i_lock);
|
||||
__d_instantiate(entry, inode);
|
||||
WARN_ON(!(inode->i_state & I_NEW));
|
||||
WARN_ON(!(inode_state_read(inode) & I_NEW));
|
||||
/*
|
||||
* Pairs with smp_rmb in wait_on_inode().
|
||||
*/
|
||||
smp_wmb();
|
||||
inode->i_state &= ~I_NEW & ~I_CREATING;
|
||||
inode_state_clear(inode, I_NEW | I_CREATING);
|
||||
/*
|
||||
* Pairs with the barrier in prepare_to_wait_event() to make sure
|
||||
* ___wait_var_event() either sees the bit cleared or
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ static void drop_pagecache_sb(struct super_block *sb, void *unused)
|
||||
* inodes without pages but we deliberately won't in case
|
||||
* we need to reschedule to avoid softlockups.
|
||||
*/
|
||||
if ((inode->i_state & (I_FREEING|I_WILL_FREE|I_NEW)) ||
|
||||
if ((inode_state_read(inode) & (I_FREEING | I_WILL_FREE | I_NEW)) ||
|
||||
(mapping_empty(inode->i_mapping) && !need_resched())) {
|
||||
spin_unlock(&inode->i_lock);
|
||||
continue;
|
||||
|
||||
+3
-3
@@ -95,7 +95,7 @@ static struct inode *__ecryptfs_get_inode(struct inode *lower_inode,
|
||||
iput(lower_inode);
|
||||
return ERR_PTR(-EACCES);
|
||||
}
|
||||
if (!(inode->i_state & I_NEW))
|
||||
if (!(inode_state_read_once(inode) & I_NEW))
|
||||
iput(lower_inode);
|
||||
|
||||
return inode;
|
||||
@@ -106,7 +106,7 @@ struct inode *ecryptfs_get_inode(struct inode *lower_inode,
|
||||
{
|
||||
struct inode *inode = __ecryptfs_get_inode(lower_inode, sb);
|
||||
|
||||
if (!IS_ERR(inode) && (inode->i_state & I_NEW))
|
||||
if (!IS_ERR(inode) && (inode_state_read_once(inode) & I_NEW))
|
||||
unlock_new_inode(inode);
|
||||
|
||||
return inode;
|
||||
@@ -364,7 +364,7 @@ static struct dentry *ecryptfs_lookup_interpose(struct dentry *dentry,
|
||||
}
|
||||
}
|
||||
|
||||
if (inode->i_state & I_NEW)
|
||||
if (inode_state_read_once(inode) & I_NEW)
|
||||
unlock_new_inode(inode);
|
||||
return d_splice_alias(inode, dentry);
|
||||
}
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ struct inode *efs_iget(struct super_block *super, unsigned long ino)
|
||||
inode = iget_locked(super, ino);
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
if (!(inode->i_state & I_NEW))
|
||||
if (!(inode_state_read_once(inode) & I_NEW))
|
||||
return inode;
|
||||
|
||||
in = INODE_INFO(inode);
|
||||
|
||||
+1
-1
@@ -295,7 +295,7 @@ struct inode *erofs_iget(struct super_block *sb, erofs_nid_t nid)
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
if (inode->i_state & I_NEW) {
|
||||
if (inode_state_read_once(inode) & I_NEW) {
|
||||
int err = erofs_fill_inode(inode);
|
||||
|
||||
if (err) {
|
||||
|
||||
+1
-1
@@ -1398,7 +1398,7 @@ struct inode *ext2_iget (struct super_block *sb, unsigned long ino)
|
||||
inode = iget_locked(sb, ino);
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
if (!(inode->i_state & I_NEW))
|
||||
if (!(inode_state_read_once(inode) & I_NEW))
|
||||
return inode;
|
||||
|
||||
ei = EXT2_I(inode);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user