|
@@ -37,17 +37,17 @@ void generic_fillattr(struct inode *inode, struct kstat *stat)
|
|
|
|
|
|
EXPORT_SYMBOL(generic_fillattr);
|
|
|
|
|
|
-int vfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
|
|
|
+int vfs_getattr(struct path *path, struct kstat *stat)
|
|
|
{
|
|
|
- struct inode *inode = dentry->d_inode;
|
|
|
+ struct inode *inode = path->dentry->d_inode;
|
|
|
int retval;
|
|
|
|
|
|
- retval = security_inode_getattr(mnt, dentry);
|
|
|
+ retval = security_inode_getattr(path->mnt, path->dentry);
|
|
|
if (retval)
|
|
|
return retval;
|
|
|
|
|
|
if (inode->i_op->getattr)
|
|
|
- return inode->i_op->getattr(mnt, dentry, stat);
|
|
|
+ return inode->i_op->getattr(path->mnt, path->dentry, stat);
|
|
|
|
|
|
generic_fillattr(inode, stat);
|
|
|
return 0;
|
|
@@ -61,8 +61,7 @@ int vfs_fstat(unsigned int fd, struct kstat *stat)
|
|
|
int error = -EBADF;
|
|
|
|
|
|
if (f.file) {
|
|
|
- error = vfs_getattr(f.file->f_path.mnt, f.file->f_path.dentry,
|
|
|
- stat);
|
|
|
+ error = vfs_getattr(&f.file->f_path, stat);
|
|
|
fdput(f);
|
|
|
}
|
|
|
return error;
|
|
@@ -89,7 +88,7 @@ retry:
|
|
|
if (error)
|
|
|
goto out;
|
|
|
|
|
|
- error = vfs_getattr(path.mnt, path.dentry, stat);
|
|
|
+ error = vfs_getattr(&path, stat);
|
|
|
path_put(&path);
|
|
|
if (retry_estale(error, lookup_flags)) {
|
|
|
lookup_flags |= LOOKUP_REVAL;
|