mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull fourth vfs update from Al Viro: "d_inode() annotations from David Howells (sat in for-next since before the beginning of merge window) + four assorted fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: RCU pathwalk breakage when running into a symlink overmounting something fix I_DIO_WAKEUP definition direct-io: only inc/dec inode->i_dio_count for file systems fs/9p: fix readdir() VFS: assorted d_backing_inode() annotations VFS: fs/inode.c helpers: d_inode() annotations VFS: fs/cachefiles: d_backing_inode() annotations VFS: fs library helpers: d_inode() annotations VFS: assorted weird filesystems: d_inode() annotations VFS: normal filesystems (and lustre): d_inode() annotations VFS: security/: d_inode() annotations VFS: security/: d_backing_inode() annotations VFS: net/: d_inode() annotations VFS: net/unix: d_backing_inode() annotations VFS: kernel/: d_inode() annotations VFS: audit: d_backing_inode() annotations VFS: Fix up some ->d_inode accesses in the chelsio driver VFS: Cachefiles should perform fs modifications on the top layer only VFS: AF_UNIX sockets should call mknod on the top layer only
This commit is contained in:
commit
9ec3a646fe
343 changed files with 1877 additions and 1867 deletions
|
|
@ -312,7 +312,7 @@ static const struct super_operations sockfs_ops = {
|
|||
static char *sockfs_dname(struct dentry *dentry, char *buffer, int buflen)
|
||||
{
|
||||
return dynamic_dname(dentry, buffer, buflen, "socket:[%lu]",
|
||||
dentry->d_inode->i_ino);
|
||||
d_inode(dentry)->i_ino);
|
||||
}
|
||||
|
||||
static const struct dentry_operations sockfs_dentry_operations = {
|
||||
|
|
@ -375,7 +375,7 @@ struct file *sock_alloc_file(struct socket *sock, int flags, const char *dname)
|
|||
&socket_file_ops);
|
||||
if (unlikely(IS_ERR(file))) {
|
||||
/* drop dentry, keep inode */
|
||||
ihold(path.dentry->d_inode);
|
||||
ihold(d_inode(path.dentry));
|
||||
path_put(&path);
|
||||
return file;
|
||||
}
|
||||
|
|
@ -497,7 +497,7 @@ static ssize_t sockfs_listxattr(struct dentry *dentry, char *buffer,
|
|||
ssize_t len;
|
||||
ssize_t used = 0;
|
||||
|
||||
len = security_inode_listsecurity(dentry->d_inode, buffer, size);
|
||||
len = security_inode_listsecurity(d_inode(dentry), buffer, size);
|
||||
if (len < 0)
|
||||
return len;
|
||||
used += len;
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ rpc_timeout_upcall_queue(struct work_struct *work)
|
|||
}
|
||||
dentry = dget(pipe->dentry);
|
||||
spin_unlock(&pipe->lock);
|
||||
rpc_purge_list(dentry ? &RPC_I(dentry->d_inode)->waitq : NULL,
|
||||
rpc_purge_list(dentry ? &RPC_I(d_inode(dentry))->waitq : NULL,
|
||||
&free_list, destroy_msg, -ETIMEDOUT);
|
||||
dput(dentry);
|
||||
}
|
||||
|
|
@ -152,7 +152,7 @@ rpc_queue_upcall(struct rpc_pipe *pipe, struct rpc_pipe_msg *msg)
|
|||
dentry = dget(pipe->dentry);
|
||||
spin_unlock(&pipe->lock);
|
||||
if (dentry) {
|
||||
wake_up(&RPC_I(dentry->d_inode)->waitq);
|
||||
wake_up(&RPC_I(d_inode(dentry))->waitq);
|
||||
dput(dentry);
|
||||
}
|
||||
return res;
|
||||
|
|
@ -591,7 +591,7 @@ static int __rpc_mkpipe_dentry(struct inode *dir, struct dentry *dentry,
|
|||
err = __rpc_create_common(dir, dentry, S_IFIFO | mode, i_fop, private);
|
||||
if (err)
|
||||
return err;
|
||||
rpci = RPC_I(dentry->d_inode);
|
||||
rpci = RPC_I(d_inode(dentry));
|
||||
rpci->private = private;
|
||||
rpci->pipe = pipe;
|
||||
fsnotify_create(dir, dentry);
|
||||
|
|
@ -616,7 +616,7 @@ int rpc_rmdir(struct dentry *dentry)
|
|||
int error;
|
||||
|
||||
parent = dget_parent(dentry);
|
||||
dir = parent->d_inode;
|
||||
dir = d_inode(parent);
|
||||
mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT);
|
||||
error = __rpc_rmdir(dir, dentry);
|
||||
mutex_unlock(&dir->i_mutex);
|
||||
|
|
@ -638,7 +638,7 @@ static int __rpc_unlink(struct inode *dir, struct dentry *dentry)
|
|||
|
||||
static int __rpc_rmpipe(struct inode *dir, struct dentry *dentry)
|
||||
{
|
||||
struct inode *inode = dentry->d_inode;
|
||||
struct inode *inode = d_inode(dentry);
|
||||
|
||||
rpc_close_pipes(inode);
|
||||
return __rpc_unlink(dir, dentry);
|
||||
|
|
@ -654,7 +654,7 @@ static struct dentry *__rpc_lookup_create_exclusive(struct dentry *parent,
|
|||
if (!dentry)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
if (dentry->d_inode == NULL)
|
||||
if (d_really_is_negative(dentry))
|
||||
return dentry;
|
||||
dput(dentry);
|
||||
return ERR_PTR(-EEXIST);
|
||||
|
|
@ -667,7 +667,7 @@ static void __rpc_depopulate(struct dentry *parent,
|
|||
const struct rpc_filelist *files,
|
||||
int start, int eof)
|
||||
{
|
||||
struct inode *dir = parent->d_inode;
|
||||
struct inode *dir = d_inode(parent);
|
||||
struct dentry *dentry;
|
||||
struct qstr name;
|
||||
int i;
|
||||
|
|
@ -679,9 +679,9 @@ static void __rpc_depopulate(struct dentry *parent,
|
|||
|
||||
if (dentry == NULL)
|
||||
continue;
|
||||
if (dentry->d_inode == NULL)
|
||||
if (d_really_is_negative(dentry))
|
||||
goto next;
|
||||
switch (dentry->d_inode->i_mode & S_IFMT) {
|
||||
switch (d_inode(dentry)->i_mode & S_IFMT) {
|
||||
default:
|
||||
BUG();
|
||||
case S_IFREG:
|
||||
|
|
@ -699,7 +699,7 @@ static void rpc_depopulate(struct dentry *parent,
|
|||
const struct rpc_filelist *files,
|
||||
int start, int eof)
|
||||
{
|
||||
struct inode *dir = parent->d_inode;
|
||||
struct inode *dir = d_inode(parent);
|
||||
|
||||
mutex_lock_nested(&dir->i_mutex, I_MUTEX_CHILD);
|
||||
__rpc_depopulate(parent, files, start, eof);
|
||||
|
|
@ -711,7 +711,7 @@ static int rpc_populate(struct dentry *parent,
|
|||
int start, int eof,
|
||||
void *private)
|
||||
{
|
||||
struct inode *dir = parent->d_inode;
|
||||
struct inode *dir = d_inode(parent);
|
||||
struct dentry *dentry;
|
||||
int i, err;
|
||||
|
||||
|
|
@ -754,7 +754,7 @@ static struct dentry *rpc_mkdir_populate(struct dentry *parent,
|
|||
int (*populate)(struct dentry *, void *), void *args_populate)
|
||||
{
|
||||
struct dentry *dentry;
|
||||
struct inode *dir = parent->d_inode;
|
||||
struct inode *dir = d_inode(parent);
|
||||
int error;
|
||||
|
||||
mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT);
|
||||
|
|
@ -787,7 +787,7 @@ static int rpc_rmdir_depopulate(struct dentry *dentry,
|
|||
int error;
|
||||
|
||||
parent = dget_parent(dentry);
|
||||
dir = parent->d_inode;
|
||||
dir = d_inode(parent);
|
||||
mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT);
|
||||
if (depopulate != NULL)
|
||||
depopulate(dentry);
|
||||
|
|
@ -819,7 +819,7 @@ struct dentry *rpc_mkpipe_dentry(struct dentry *parent, const char *name,
|
|||
void *private, struct rpc_pipe *pipe)
|
||||
{
|
||||
struct dentry *dentry;
|
||||
struct inode *dir = parent->d_inode;
|
||||
struct inode *dir = d_inode(parent);
|
||||
umode_t umode = S_IFIFO | S_IRUSR | S_IWUSR;
|
||||
int err;
|
||||
|
||||
|
|
@ -864,7 +864,7 @@ rpc_unlink(struct dentry *dentry)
|
|||
int error = 0;
|
||||
|
||||
parent = dget_parent(dentry);
|
||||
dir = parent->d_inode;
|
||||
dir = d_inode(parent);
|
||||
mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT);
|
||||
error = __rpc_rmpipe(dir, dentry);
|
||||
mutex_unlock(&dir->i_mutex);
|
||||
|
|
@ -1375,7 +1375,7 @@ rpc_gssd_dummy_depopulate(struct dentry *pipe_dentry)
|
|||
struct dentry *clnt_dir = pipe_dentry->d_parent;
|
||||
struct dentry *gssd_dir = clnt_dir->d_parent;
|
||||
|
||||
__rpc_rmpipe(clnt_dir->d_inode, pipe_dentry);
|
||||
__rpc_rmpipe(d_inode(clnt_dir), pipe_dentry);
|
||||
__rpc_depopulate(clnt_dir, gssd_dummy_info_file, 0, 1);
|
||||
__rpc_depopulate(gssd_dir, gssd_dummy_clnt_dir, 0, 1);
|
||||
dput(pipe_dentry);
|
||||
|
|
|
|||
|
|
@ -305,7 +305,7 @@ static struct sock *unix_find_socket_byinode(struct inode *i)
|
|||
&unix_socket_table[i->i_ino & (UNIX_HASH_SIZE - 1)]) {
|
||||
struct dentry *dentry = unix_sk(s)->path.dentry;
|
||||
|
||||
if (dentry && dentry->d_inode == i) {
|
||||
if (dentry && d_backing_inode(dentry) == i) {
|
||||
sock_hold(s);
|
||||
goto found;
|
||||
}
|
||||
|
|
@ -778,7 +778,7 @@ static struct sock *unix_find_other(struct net *net,
|
|||
err = kern_path(sunname->sun_path, LOOKUP_FOLLOW, &path);
|
||||
if (err)
|
||||
goto fail;
|
||||
inode = path.dentry->d_inode;
|
||||
inode = d_backing_inode(path.dentry);
|
||||
err = inode_permission(inode, MAY_WRITE);
|
||||
if (err)
|
||||
goto put_fail;
|
||||
|
|
@ -839,7 +839,7 @@ static int unix_mknod(const char *sun_path, umode_t mode, struct path *res)
|
|||
*/
|
||||
err = security_path_mknod(&path, dentry, mode, 0);
|
||||
if (!err) {
|
||||
err = vfs_mknod(path.dentry->d_inode, dentry, mode, 0);
|
||||
err = vfs_mknod(d_inode(path.dentry), dentry, mode, 0);
|
||||
if (!err) {
|
||||
res->mnt = mntget(path.mnt);
|
||||
res->dentry = dget(dentry);
|
||||
|
|
@ -905,7 +905,7 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
|
|||
goto out_up;
|
||||
}
|
||||
addr->hash = UNIX_HASH_SIZE;
|
||||
hash = path.dentry->d_inode->i_ino & (UNIX_HASH_SIZE-1);
|
||||
hash = d_backing_inode(path.dentry)->i_ino & (UNIX_HASH_SIZE-1);
|
||||
spin_lock(&unix_table_lock);
|
||||
u->path = path;
|
||||
list = &unix_socket_table[hash];
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ static int sk_diag_dump_vfs(struct sock *sk, struct sk_buff *nlskb)
|
|||
|
||||
if (dentry) {
|
||||
struct unix_diag_vfs uv = {
|
||||
.udiag_vfs_ino = dentry->d_inode->i_ino,
|
||||
.udiag_vfs_ino = d_backing_inode(dentry)->i_ino,
|
||||
.udiag_vfs_dev = dentry->d_sb->s_dev,
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue