X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fzpl_inode.c;fp=module%2Fzfs%2Fzpl_inode.c;h=a6e0cbb872430e56a790000b0ca5ec26790618e0;hb=057e8eee35d4cc06cc4edd6e8239d28a4122cf71;hp=8376673f15f51704904f6dfef77162ab8892252c;hpb=abd8610cd5ffd04f0fa07297f53852e744ea389e;p=zfs.git diff --git a/module/zfs/zpl_inode.c b/module/zfs/zpl_inode.c index 8376673..a6e0cbb 100644 --- a/module/zfs/zpl_inode.c +++ b/module/zfs/zpl_inode.c @@ -165,35 +165,9 @@ zpl_rmdir(struct inode * dir, struct dentry *dentry) static int zpl_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) { - cred_t *cr = CRED(); - vattr_t *vap; - struct inode *ip; int error; - ip = dentry->d_inode; - crhold(cr); - vap = kmem_zalloc(sizeof(vattr_t), KM_SLEEP); - - error = -zfs_getattr(ip, vap, 0, cr); - if (error) - goto out; - - stat->ino = ip->i_ino; - stat->dev = ip->i_sb->s_dev; - stat->mode = vap->va_mode; - stat->nlink = vap->va_nlink; - stat->uid = vap->va_uid; - stat->gid = vap->va_gid; - stat->rdev = vap->va_rdev; - stat->size = vap->va_size; - stat->atime = vap->va_atime; - stat->mtime = vap->va_mtime; - stat->ctime = vap->va_ctime; - stat->blksize = vap->va_blksize; - stat->blocks = vap->va_nblocks; -out: - kmem_free(vap, sizeof(vattr_t)); - crfree(cr); + error = -zfs_getattr_fast(dentry->d_inode, stat); ASSERT3S(error, <=, 0); return (error);