View | Details | Raw Unified | Return to bug 114847 | Differences between
and this patch

Collapse All | Expand All

(-)src/sys/fs/ntfs/ntfs_vnops.c (-2 / +8 lines)
Lines 187-192 Link Here
187
	vap->va_fsid = dev2udev(ip->i_dev);
187
	vap->va_fsid = dev2udev(ip->i_dev);
188
	vap->va_fileid = ip->i_number;
188
	vap->va_fileid = ip->i_number;
189
	vap->va_mode = ip->i_mp->ntm_mode;
189
	vap->va_mode = ip->i_mp->ntm_mode;
190
	if (vp->v_type == VDIR)
191
		vap->va_mode |= (VEXEC | VEXEC >> 3 | VEXEC >> 6);
190
	vap->va_nlink = (ip->i_nlink || ip->i_flag & IN_LOADED ? ip->i_nlink : 1);
192
	vap->va_nlink = (ip->i_nlink || ip->i_flag & IN_LOADED ? ip->i_nlink : 1);
191
	vap->va_uid = ip->i_mp->ntm_uid;
193
	vap->va_uid = ip->i_mp->ntm_uid;
192
	vap->va_gid = ip->i_mp->ntm_gid;
194
	vap->va_gid = ip->i_mp->ntm_gid;
Lines 392-404 Link Here
392
{
394
{
393
	struct vnode *vp = ap->a_vp;
395
	struct vnode *vp = ap->a_vp;
394
	struct ntnode *ip = VTONT(vp);
396
	struct ntnode *ip = VTONT(vp);
395
	mode_t mode = ap->a_mode;
397
	mode_t file_mode, mode = ap->a_mode;
396
#ifdef QUOTA
398
#ifdef QUOTA
397
	int error;
399
	int error;
398
#endif
400
#endif
399
401
400
	dprintf(("ntfs_access: %d\n",ip->i_number));
402
	dprintf(("ntfs_access: %d\n",ip->i_number));
401
403
404
	file_mode = ip->i_mp->ntm_mode;
405
	if (vp->v_type == VDIR)
406
		file_mode |= (S_IXUSR | S_IXGRP | S_IXOTH);
407
402
	/*
408
	/*
403
	 * Disallow write attempts on read-only filesystems;
409
	 * Disallow write attempts on read-only filesystems;
404
	 * unless the file is a socket, fifo, or a block or
410
	 * unless the file is a socket, fifo, or a block or
Lines 419-425 Link Here
419
		}
425
		}
420
	}
426
	}
421
427
422
	return (vaccess(vp->v_type, ip->i_mp->ntm_mode, ip->i_mp->ntm_uid,
428
	return (vaccess(vp->v_type, file_mode, ip->i_mp->ntm_uid,
423
	    ip->i_mp->ntm_gid, ap->a_mode, ap->a_cred, NULL));
429
	    ip->i_mp->ntm_gid, ap->a_mode, ap->a_cred, NULL));
424
} 
430
} 
425
431

Return to bug 114847