}
} else {
struct autofs_info *ino = autofs_dentry_ino(p);
- unsigned int ino_count = atomic_read(&ino->count);
+ unsigned int ino_count = READ_ONCE(ino->count);
/* allow for dget above and top is already dgot */
if (p == top)
/* Not a forced expire? */
if (!(how & AUTOFS_EXP_FORCED)) {
/* ref-walk currently on this dentry? */
- ino_count = atomic_read(&ino->count) + 1;
+ ino_count = READ_ONCE(ino->count) + 1;
if (d_count(dentry) > ino_count)
return NULL;
}
/* Not a forced expire? */
if (!(how & AUTOFS_EXP_FORCED)) {
/* ref-walk currently on this dentry? */
- ino_count = atomic_read(&ino->count) + 1;
+ ino_count = READ_ONCE(ino->count) + 1;
if (d_count(dentry) > ino_count)
return NULL;
}
d_add(dentry, inode);
dget(dentry);
- atomic_inc(&ino->count);
+ ino->count++;
p_ino = autofs_dentry_ino(dentry->d_parent);
- atomic_inc(&p_ino->count);
+ p_ino->count++;
dir->i_mtime = current_time(dir);
if (sbi->flags & AUTOFS_SBI_CATATONIC)
return -EACCES;
- atomic_dec(&ino->count);
+ ino->count--;
p_ino = autofs_dentry_ino(dentry->d_parent);
- atomic_dec(&p_ino->count);
+ p_ino->count--;
dput(ino->dentry);
d_inode(dentry)->i_size = 0;
/* only consider parents below dentrys in the root */
if (IS_ROOT(parent->d_parent))
return;
- if (atomic_read(&autofs_dentry_ino(parent)->count) == 2)
+ if (autofs_dentry_ino(parent)->count == 2)
managed_dentry_set_managed(parent);
}
if (sbi->flags & AUTOFS_SBI_CATATONIC)
return -EACCES;
- if (atomic_read(&ino->count) != 1)
+ if (ino->count != 1)
return -ENOTEMPTY;
spin_lock(&sbi->lookup_lock);
if (sbi->version < 5)
autofs_clear_leaf_automount_flags(dentry);
- atomic_dec(&ino->count);
+ ino->count--;
p_ino = autofs_dentry_ino(dentry->d_parent);
- atomic_dec(&p_ino->count);
+ p_ino->count--;
dput(ino->dentry);
d_inode(dentry)->i_size = 0;
clear_nlink(d_inode(dentry));
autofs_set_leaf_automount_flags(dentry);
dget(dentry);
- atomic_inc(&ino->count);
+ ino->count++;
p_ino = autofs_dentry_ino(dentry->d_parent);
- atomic_inc(&p_ino->count);
+ p_ino->count++;
inc_nlink(dir);
dir->i_mtime = current_time(dir);