Date: Tue, 24 Jul 2007 05:00:15 GMT From: Ighighi <ighighi@gmail.com> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/114847: [PATCH]: dirmask support for NTFS ala MSDOSFS Message-ID: <200707240500.l6O50F14055030@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/114847; it has been noted by GNATS. From: Ighighi <ighighi@gmail.com> To: bug-followup@freebsd.org Cc: Subject: Re: kern/114847: [PATCH]: dirmask support for NTFS ala MSDOSFS Date: Tue, 24 Jul 2007 00:55:40 -0400 This is a multi-part message in MIME format. --------------000100080803040209010208 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit This patch adds search permissions to directories on NTFS volumes so you don't need to add them to the "-m mask" option in mount_ntfs(8) since those permissions most likely make no sense on regular files anyway. It preserves ABI compatibility. To apply this patch, run: patch -d /usr < /path/do/patch Now, either rebuild the world and the kernel or run: cd /usr/src/sys/modules/ntfs make clean && make && make install clean kldunload -v ntfs kldload -v ntfs Enjoy, you may now use -m644 in /etc/fstab and still browse directories: /dev/ad0s1 /mnt/win ntfs ro,noexec,noatime,-m644 0 0 --------------000100080803040209010208 Content-Type: text/x-patch; name="ntfs_vnops.c.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="ntfs_vnops.c.patch" # # (!c) 2007 by Ighighi # # This patch adds search permissions to directories on NTFS volumes so # you don't need to add them to the "-m mask" option in mount_ntfs(8) # since those permissions most likely make no sense on files anyway... # # To apply this patch, run: # patch -d /usr < /path/do/patch # Now, either rebuild the world and the kernel or run: # cd /usr/src/sys/modules/ntfs # make clean && make && make install clean # kldunload -v ntfs # kldload -v ntfs # # Enjoy, you may now use -m644 in /etc/fstab and still browse directories: # /dev/ad0s1 /mnt/win ntfs ro,noexec,noatime,-m644 0 0 # --- src/sys/fs/ntfs/ntfs_vnops.c.orig 2006-11-15 21:47:02.000000000 -0400 +++ src/sys/fs/ntfs/ntfs_vnops.c 2007-07-23 19:29:09.000000000 -0400 @@ -187,6 +187,8 @@ vap->va_fsid = dev2udev(ip->i_dev); vap->va_fileid = ip->i_number; vap->va_mode = ip->i_mp->ntm_mode; + if (vp->v_type == VDIR) + vap->va_mode |= (VEXEC | VEXEC >> 3 | VEXEC >> 6); vap->va_nlink = (ip->i_nlink || ip->i_flag & IN_LOADED ? ip->i_nlink : 1); vap->va_uid = ip->i_mp->ntm_uid; vap->va_gid = ip->i_mp->ntm_gid; @@ -392,13 +394,17 @@ { struct vnode *vp = ap->a_vp; struct ntnode *ip = VTONT(vp); - mode_t mode = ap->a_mode; + mode_t file_mode, mode = ap->a_mode; #ifdef QUOTA int error; #endif dprintf(("ntfs_access: %d\n",ip->i_number)); + file_mode = ip->i_mp->ntm_mode; + if (vp->v_type == VDIR) + file_mode |= (S_IXUSR | S_IXGRP | S_IXOTH); + /* * Disallow write attempts on read-only filesystems; * unless the file is a socket, fifo, or a block or @@ -419,7 +425,7 @@ } } - return (vaccess(vp->v_type, ip->i_mp->ntm_mode, ip->i_mp->ntm_uid, + return (vaccess(vp->v_type, file_mode, ip->i_mp->ntm_uid, ip->i_mp->ntm_gid, ap->a_mode, ap->a_cred, NULL)); } --------------000100080803040209010208--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707240500.l6O50F14055030>