* [PATCH] Invalid notify_change(symlink, [ATTR_MODE]) in nfsd
@ 2004-05-04 14:56 Andreas Gruenbacher
0 siblings, 0 replies; only message in thread
From: Andreas Gruenbacher @ 2004-05-04 14:56 UTC (permalink / raw)
To: Linus Torvalds, Andrew Morton; +Cc: lkml, Olaf Kirch
notify_change() gets called with at most the ATTR_MODE flag set for
symlinks, but it should be called with the ATTR_MODE flag cleared.
This triggers a bug in fs/reiserfs/xattr_acl.c (reiserfs plus acl
patches), and perhaps on other file systems, too. (On ext2/ext3 symlinks
have no ->setattr, there the bug does not trigger.)
int
reiserfs_acl_chmod (struct inode *inode)
{
struct posix_acl *acl, *clone;
int error;
==> if (S_ISLNK(inode->i_mode))
==> return -EOPNOTSUPP;
This is the fix -- please apply.
Index: linux-2.6.6-rc3/fs/nfsd/vfs.c
===================================================================
--- linux-2.6.6-rc3.orig/fs/nfsd/vfs.c
+++ linux-2.6.6-rc3/fs/nfsd/vfs.c
@@ -1212,7 +1212,7 @@ nfsd_symlink(struct svc_rqst *rqstp, str
if (EX_ISSYNC(fhp->fh_export))
nfsd_sync_dir(dentry);
if (iap) {
- iap->ia_valid &= ATTR_MODE /* ~(ATTR_MODE|ATTR_UID|ATTR_GID)*/;
+ iap->ia_valid &= ~ATTR_MODE;
if (iap->ia_valid) {
iap->ia_valid |= ATTR_CTIME;
iap->ia_mode = (iap->ia_mode&S_IALLUGO)
Cheers,
--
Andreas Gruenbacher <agruen@suse.de>
SUSE Labs, SUSE LINUX AG
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2004-05-04 15:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-04 14:56 [PATCH] Invalid notify_change(symlink, [ATTR_MODE]) in nfsd Andreas Gruenbacher
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®