[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0708032019450.26527@fbirervta.pbzchgretzou.qr>
Date: Fri, 3 Aug 2007 20:20:50 +0200 (CEST)
From: Jan Engelhardt <jengelh@...putergmbh.de>
To: Miklos Szeredi <miklos@...redi.hu>
cc: akpm@...ux-foundation.org, linux-kernel@...r.kernel.org
Subject: Re: [patch 08/11] fuse: fix permission checking on sticky directories
On Aug 3 2007 19:44, Miklos Szeredi wrote:
>--- linux.orig/fs/fuse/fuse_i.h 2007-08-03 18:36:15.000000000 +0200
>+++ linux/fs/fuse/fuse_i.h 2007-08-03 18:36:17.000000000 +0200
>@@ -63,6 +63,10 @@ struct fuse_inode {
>
> /** Time in jiffies until the file attributes are valid */
> u64 i_time;
>+
>+ /** The sticky bit in inode->i_mode may have been remved, so
^
may have been removed.
>+ preserve the original mode */
>+ mode_t orig_i_mode;
> };
>
> /** FUSE specific file data */
>Index: linux/fs/fuse/inode.c
>===================================================================
>--- linux.orig/fs/fuse/inode.c 2007-08-03 18:36:14.000000000 +0200
>+++ linux/fs/fuse/inode.c 2007-08-03 18:36:37.000000000 +0200
>@@ -120,10 +120,18 @@ static void fuse_truncate(struct address
> void fuse_change_attributes(struct inode *inode, struct fuse_attr *attr)
> {
> struct fuse_conn *fc = get_fuse_conn(inode);
>+ struct fuse_inode *fi = get_fuse_inode(inode);
> loff_t oldsize;
>
> inode->i_ino = attr->ino;
>- inode->i_mode = (inode->i_mode & S_IFMT) + (attr->mode & 07777);
>+ fi->orig_i_mode = (inode->i_mode & S_IFMT) + (attr->mode & 07777);
Although it does not matter in this case, | is safer (and perhaps faster?).
Jan
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists