git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add -p switch to "zpool get"
[zfs.git]
/
module
/
zfs
/
zpl_inode.c
diff --git
a/module/zfs/zpl_inode.c
b/module/zfs/zpl_inode.c
index
0f6f3a4
..
ab1fe68
100644
(file)
--- a/
module/zfs/zpl_inode.c
+++ b/
module/zfs/zpl_inode.c
@@
-41,6
+41,9
@@
zpl_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags)
struct inode *ip;
int error;
struct inode *ip;
int error;
+ if (dlen(dentry) > ZFS_MAXNAMELEN)
+ return ERR_PTR(-ENAMETOOLONG);
+
crhold(cr);
error = -zfs_lookup(dir, dname(dentry), &ip, 0, cr, NULL, NULL);
ASSERT3S(error, <=, 0);
crhold(cr);
error = -zfs_lookup(dir, dname(dentry), &ip, 0, cr, NULL, NULL);
ASSERT3S(error, <=, 0);
@@
-71,7
+74,7
@@
zpl_vap_init(vattr_t *vap, struct inode *dir, zpl_umode_t mode, cred_t *cr)
vap->va_uid = crgetfsuid(cr);
if (dir && dir->i_mode & S_ISGID) {
vap->va_uid = crgetfsuid(cr);
if (dir && dir->i_mode & S_ISGID) {
- vap->va_gid =
dir->i_gid
;
+ vap->va_gid =
KGID_TO_SGID(dir->i_gid)
;
if (S_ISDIR(mode))
vap->va_mode |= S_ISGID;
} else {
if (S_ISDIR(mode))
vap->va_mode |= S_ISGID;
} else {
@@
-232,8
+235,8
@@
zpl_setattr(struct dentry *dentry, struct iattr *ia)
vap = kmem_zalloc(sizeof(vattr_t), KM_SLEEP);
vap->va_mask = ia->ia_valid & ATTR_IATTR_MASK;
vap->va_mode = ia->ia_mode;
vap = kmem_zalloc(sizeof(vattr_t), KM_SLEEP);
vap->va_mask = ia->ia_valid & ATTR_IATTR_MASK;
vap->va_mode = ia->ia_mode;
- vap->va_uid =
ia->ia_uid
;
- vap->va_gid =
ia->ia_gid
;
+ vap->va_uid =
KUID_TO_SUID(ia->ia_uid)
;
+ vap->va_gid =
KGID_TO_SGID(ia->ia_gid)
;
vap->va_size = ia->ia_size;
vap->va_atime = ia->ia_atime;
vap->va_mtime = ia->ia_mtime;
vap->va_size = ia->ia_size;
vap->va_atime = ia->ia_atime;
vap->va_mtime = ia->ia_mtime;
@@
-396,7
+399,7
@@
static int
#ifdef HAVE_D_REVALIDATE_NAMEIDATA
zpl_revalidate(struct dentry *dentry, struct nameidata *nd)
{
#ifdef HAVE_D_REVALIDATE_NAMEIDATA
zpl_revalidate(struct dentry *dentry, struct nameidata *nd)
{
- unsigned int flags =
nd->flags
;
+ unsigned int flags =
(nd ? nd->flags : 0)
;
#else
zpl_revalidate(struct dentry *dentry, unsigned int flags)
{
#else
zpl_revalidate(struct dentry *dentry, unsigned int flags)
{