Messages in this thread | | | From | Rob Landley <> | Subject | Re: [patch 6/8] uml: fix hostfs special perm handling [for 2.6.12] | Date | Wed, 30 Mar 2005 15:59:34 -0500 |
| |
On Wednesday 30 March 2005 12:34 pm, blaisorblade@yahoo.it wrote: > From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> > CC: Rob Landley <rob@landley.net> > When opening devices nodes on hostfs, it does not make sense to call > access(), since we are not going to open the file on the host. > > If the device node is owned by root, the root user in UML should succeed in > opening it, even if UML won't be able to open the file. > > As reported by Rob Landley, UML currently does not follow this, so here's > an (untested) fix. > > Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Not untested, it Worked For Me (tm).
Signed-off-by: Rob Landley <rob@landley.net>
> --- > > linux-2.6.11-paolo/fs/hostfs/hostfs_kern.c | 20 +++++++++++++------- > 1 files changed, 13 insertions(+), 7 deletions(-) > > diff -puN fs/hostfs/hostfs_kern.c~uml-fix-hostfs-special-perm-handling > fs/hostfs/hostfs_kern.c --- > linux-2.6.11/fs/hostfs/hostfs_kern.c~uml-fix-hostfs-special-perm-handling 2 >005-03-22 20:10:07.000000000 +0100 +++ > linux-2.6.11-paolo/fs/hostfs/hostfs_kern.c 2005-03-22 20:12:45.000000000 > +0100 @@ -806,15 +806,21 @@ int hostfs_permission(struct inode *ino, > char *name; > int r = 0, w = 0, x = 0, err; > > - if(desired & MAY_READ) r = 1; > - if(desired & MAY_WRITE) w = 1; > - if(desired & MAY_EXEC) x = 1; > + if (desired & MAY_READ) r = 1; > + if (desired & MAY_WRITE) w = 1; > + if (desired & MAY_EXEC) x = 1; > name = inode_name(ino, 0); > - if(name == NULL) return(-ENOMEM); > - err = access_file(name, r, w, x); > + if (name == NULL) return(-ENOMEM); > + > + if (S_ISCHR(ino->i_mode) || S_ISBLK(ino->i_mode) || > + S_ISFIFO(ino->i_mode) || S_ISSOCK(ino->i_mode)) > + err = 0; > + else > + err = access_file(name, r, w, x); > kfree(name); > - if(!err) err = generic_permission(ino, desired, NULL); > - return(err); > + if(!err) > + err = generic_permission(ino, desired, NULL); > + return err; > } > > int hostfs_setattr(struct dentry *dentry, struct iattr *attr) > _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |