svn commit: r202584 - head/sys/fs/ext2fs
Ulf Lilleengen
lulf at FreeBSD.org
Mon Jan 18 19:09:16 UTC 2010
Author: lulf
Date: Mon Jan 18 19:09:16 2010
New Revision: 202584
URL: http://svn.freebsd.org/changeset/base/202584
Log:
Revert parts of r202283:
- Return EOPNOTSUPP before EROFS to be consistent with other filesystems.
- Fix setting of the nodump flag for users without PRIV_VFS_SYSFLAGS privilege.
Submitted by: jh@
Modified:
head/sys/fs/ext2fs/ext2_vnops.c
Modified: head/sys/fs/ext2fs/ext2_vnops.c
==============================================================================
--- head/sys/fs/ext2fs/ext2_vnops.c Mon Jan 18 18:58:03 2010 (r202583)
+++ head/sys/fs/ext2fs/ext2_vnops.c Mon Jan 18 19:09:16 2010 (r202584)
@@ -402,11 +402,12 @@ ext2_setattr(ap)
return (EINVAL);
}
if (vap->va_flags != VNOVAL) {
- if (vp->v_mount->mnt_flag & MNT_RDONLY)
- return (EROFS);
/* Disallow flags not supported by ext2fs. */
if(vap->va_flags & ~(SF_APPEND | SF_IMMUTABLE | UF_NODUMP))
- return(EOPNOTSUPP);
+ return (EOPNOTSUPP);
+
+ if (vp->v_mount->mnt_flag & MNT_RDONLY)
+ return (EROFS);
/*
* Callers may only modify the file flags on objects they
* have VADMIN rights for.
@@ -430,9 +431,11 @@ ext2_setattr(ap)
ip->i_flags = vap->va_flags;
} else {
if (ip->i_flags
- & (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND))
+ & (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND) ||
+ (vap->va_flags & UF_SETTABLE) != vap->va_flags)
return (EPERM);
ip->i_flags &= SF_SETTABLE;
+ ip->i_flags |= (vap->va_flags & UF_SETTABLE);
}
ip->i_flag |= IN_CHANGE;
if (vap->va_flags & (IMMUTABLE | APPEND))
More information about the svn-src-head
mailing list