Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Oct 2006 17:42:33 -0400
From:      Lowell Gilbert <lgfbsd@be-well.ilk.org>
To:        absorbb@gmail.com (=?utf-8?B?0JjQu9GM0LTQsNGAINCd0YPRgNC40YHQu9Cw0Lw=?= =?utf-8?B?0L7Qsg==?=)
Subject:   Re: ntfs broken when share through samba3
Message-ID:  <44d58sos3a.fsf@be-well.ilk.org>
In-Reply-To: <200609292159.18282.absorbb@gmail.com> (=?utf-8?B?0JjQu9GM?= =?utf-8?B?0LTQsNGAINCd0YPRgNC40YHQu9Cw0LzQvtCyJ3M=?= message of "Fri, 29 Sep 2006 21:59:17 %2B0400")
References:  <200609292159.18282.absorbb@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
absorbb@gmail.com (=D0=98=D0=BB=D1=8C=D0=B4=D0=B0=D1=80 =D0=9D=D1=83=D1=80=
=D0=B8=D1=81=D0=BB=D0=B0=D0=BC=D0=BE=D0=B2) writes:

> This old already reported bug.
> But situation have'nt changed.

For example, kern/86965.

> There is very simple patch that fix this bug:
>
> --- usr/src/sys/fs/ntfs/ntfs_vnops.c	Mon Mar 13 00:50:01 2006
> +++ home/voxel/stuff/ntfs_vnops.c	Thu Aug 31 09:22:08 2006
> @@ -187,7 +187,8 @@
>  	vap->va_fsid =3D dev2udev(ip->i_dev);
>  	vap->va_fileid =3D ip->i_number;
>  	vap->va_mode =3D ip->i_mp->ntm_mode;
> -	vap->va_nlink =3D ip->i_nlink;
> +	vap->va_nlink =3D (ip->i_nlink ? ip->i_nlink : 1);
> +	//vap->va_nlink =3D ip->i_nlink;
>  	vap->va_uid =3D ip->i_mp->ntm_uid;
>  	vap->va_gid =3D ip->i_mp->ntm_gid;
>  	vap->va_rdev =3D 0;				/* XXX UNODEV ? */
>
> but it seems to be not beaty solution

Not beautiful, indeed.=20=20

I was playing around with this, and although that change would work
around the problem in (at least) most cases, I am not sure that it is
truly correct.

I am not an expert at filesystems, and certainly have little knowledge
of NTFS.  However, my observations confuse me considerably.  The main
issue is that if you read from a file (on NTFS, with a link count of
zero according to ls(1)), the link count becomes populated.  I cannot
see how that would happen, because the ntnode structure link count is
not modified except when reading the whole structure from the disk,
and the on-disk node is not being changed.  To confuse things further,
the link count is changed to 2, not 1, on ordinary files that have
only a single directory entry.  I do not believe that streams are at
issue, because the file has no open file descriptors remaining
according to fstat(1).

Any thoughts from the experts?

Might Darwin have any useful hints?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44d58sos3a.fsf>