Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Mar 2011 10:09:16 +0200
From:      Mikolaj Golub <trociny@freebsd.org>
To:        giffunip@tutopia.com
Cc:        freebsd-fs@freebsd.org
Subject:   Re: kern/152079: [msdosfs] [patch] Small cleanups from the other NetBSD/OpenBSD
Message-ID:  <86wrjmtiab.fsf@kopusha.home.net>
In-Reply-To: <650638.91967.qm@web113506.mail.gq1.yahoo.com> (Pedro F. Giffuni's message of "Fri, 25 Mar 2011 18:01:39 -0700 (PDT)")
References:  <650638.91967.qm@web113506.mail.gq1.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Fri, 25 Mar 2011 18:01:39 -0700 (PDT) Pedro F. Giffuni wrote:

 PFG> --- On Fri, 3/25/11, Kostik Belousov <kostikbel@gmail.com> wrote:

 PFG> ....
 >> No, I do not want it in our testing framework. I want to
 >> see a standalone test that demonstrates the issue.
 >> I think the leak is real, but want to have a way to
 >> reproduce it before committing.
 >> 
 >> The diff you pointed out to t_vnops.c does not make much
 >> sense to me.

 PFG> I looked a little more in their records and I found this:
 PFG> _____
 PFG> ...
 PFG>         /* rename directory over an empty directory */
 PFG>         md(pb1, mp, "parent");
 PFG>         md(pb2, mp, "parent/dir1");
 PFG>         md(pb3, mp, "parent/dir2");
 PFG>         RL(rump_sys_mkdir(pb1, 0777));
 PFG>         RL(rump_sys_mkdir(pb2, 0777));
 PFG>         RL(rump_sys_mkdir(pb3, 0777));
 PFG>         RL(rump_sys_rename(pb2, pb3));

 PFG>         RL(rump_sys_stat(pb1, &sb));
 PFG>         ATF_CHECK_EQ(sb.st_nlink, 3);
 PFG>         RL(rump_sys_rmdir(pb3));
 PFG>         if (FSTYPE_TMPFS(tc))
 PFG>                 atf_tc_expect_signal(-1, "PR kern/44288");
 PFG> ______

 PFG> There's also this that was removed once the PR was fixed:

 PFG> -        if (FSTYPE_MSDOS(tc))
 PFG> -                atf_tc_skip("test fails in some setups, reason unknown");

 PFG> hope that helps.

I suppose doing something like this on msdos fs:

mkdir parent
mkdir parent/1
mv parent/1 parent/2
ls -dl parent

In the case of the leak we should see 4 in hard links number field instead of
expected 3.

But in FreeBSD it looks like msdosfs always reports link count 1:

/dev/md1 on /mnt (msdosfs, local)

[root@lolek ~]# cd /mnt/
[root@lolek /mnt]# mkdir parent
[root@lolek /mnt]# mkdir parent/1 parent/2 parent/3
[root@lolek /mnt]# ls -ld parent
drwxr-xr-x  1 root  wheel  4096 Mar 26 11:56 parent

Tested on 8-STABLE and CURRENT.

-- 
Mikolaj Golub



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