From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Steve French" Subject: No longer set S_ISVTX when mounted to Windows Date: Thu, 1 Nov 2007 11:08:33 -0500 Message-ID: <524f69650711010908r2f08fa35t9be074e3c92b01ec@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "Jeff Layton" , shaggy@austin.ibm.com, "Cyrill Gorcunov" To: linux-fsdevel , linux-cifs-client@lists.samba.org Return-path: Received: from py-out-1112.google.com ([64.233.166.180]:38604 "EHLO py-out-1112.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751766AbXKAQIe (ORCPT ); Thu, 1 Nov 2007 12:08:34 -0400 Received: by py-out-1112.google.com with SMTP id u77so1014992pyb for ; Thu, 01 Nov 2007 09:08:33 -0700 (PDT) Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Not sure why the cifs code sets the S_ISVTX bit when mounted to Windows servers. I think the intent was to turn off all of the high bits except that (S_ISGID) needed to indicate mandatory locking (mandatory locking is set by having S_ISGID on and group execute, S_IXGRP, off). When reviewing the cifsacl code (to map CIFS/Windows/NTFS ACLs to mode bits I noticed that we were setting the sticky bit (S_ISVTX) on files (this does not happen when a user specifies a default mode on mount) and probably shouldn't. Does anyone see any problem with turning this bit off in the default file mode when mounted to Windows? diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 19ee11f..380ee99 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -793,7 +793,7 @@ cifs_parse_mount_options(char *options, const char *devname, vol->linux_gid = current->gid; vol->dir_mode = S_IRWXUGO; /* 2767 perms indicate mandatory locking support */ - vol->file_mode = S_IALLUGO & ~(S_ISUID | S_IXGRP); + vol->file_mode = (S_IRWXUGO | S_ISGID) & (~S_IXGRP); /* vol->retry default is 0 (i.e. "soft" limited retry not hard retry) */ vol->rw = TRUE; -- Thanks, Steve