disk space not freed when deleting files in null_mounted filesystem

richard bader richard at bader-muenchen.de
Thu Jun 9 12:24:08 UTC 2016


Am 09.06.2016 um 14:17 schrieb Konstantin Belousov:
> On Thu, Jun 09, 2016 at 02:11:26PM +0200, Peter Holm wrote:
>> On Thu, Jun 09, 2016 at 01:39:45PM +0200, richard bader wrote:
>>> Am 09.06.2016 um 13:27 schrieb Peter Holm:
>>>> On Thu, Jun 09, 2016 at 12:13:08PM +0200, richard bader wrote:
>>>>> Hello,
>>>>>
>>>>> i've a filesystem mounted with mount_nullfs.
>>>>> When i delete a large file in this filesystem, the space on the disk is
>>>>> not freed.
>>>>> The space becomes freed when i unmount the filesystem.
>>>>>
>>>>>
>>>>> to reproduce this:
>>>>>
>>>>> root at main2:/tmp # mkdir lnk src
>>>>> root at main2:/tmp # mount_nullfs src lnk
>>>>> root at main2:/tmp # mount | grep lnk
>>>>> /tmp/src on /tmp/lnk (nullfs, local)
>>>>> root at main2:/tmp # df -h .
>>>>> Filesystem     Size    Used   Avail Capacity  Mounted on
>>>>> /dev/ada0p2     58G     40G     13G    75%    /
>>>>> root at main2:/tmp # dd if=/dev/zero of=lnk/foo bs=1G count=3
>>>>> 3+0 records in
>>>>> 3+0 records out
>>>>> 3221225472 bytes transferred in 7.856793 secs (409992411 bytes/sec)
>>>>> root at main2:/tmp # df -h .
>>>>> Filesystem     Size    Used   Avail Capacity  Mounted on
>>>>> /dev/ada0p2     58G     43G     10G    80%    /
>>>>> root at main2:/tmp # rm lnk/foo
>>>>> root at main2:/tmp # df -h .
>>>>> Filesystem     Size    Used   Avail Capacity  Mounted on
>>>>> /dev/ada0p2     58G     43G     10G    80%    /
>>>>> root at main2:/tmp # umount /tmp/lnk
>>>>> root at main2:/tmp # df -h .
>>>>> Filesystem     Size    Used   Avail Capacity  Mounted on
>>>>> /dev/ada0p2     58G     40G     13G    75%    /
>>>>>
>>>>>
>>>>> my system:
>>>>>
>>>>> root at main2:/tmp # uname -a
>>>>> FreeBSD main2.bader.loc 10.2-RELEASE-p18 FreeBSD 10.2-RELEASE-p18 #8
>>>>> r301112: Wed Jun  1 11:08:24 CEST 2016
>>>>> root at main2.bader.loc:/usr/obj/usr/src/sys/MYKERNEL  amd64
>>>>>
>>>>> are the any options for mount_nullfs ?
>>>>>
>>>>> best regards
>>>>>
>>>>> richard
>>>>>
>>>> Hello Richard,
>>>>
>>>> I wonder which file system you are using?
>>>> Here's what happens with UFS and current from today:
>>>>
>>>> $ cat -n richard.sh
>>>>        1  #!/bin/sh
>>>>        2
>>>>        3  uname -a
>>>>        4  mount | grep `df -h /tmp | tail -1 | awk '{print $1}'`
>>>>        5
>>>>        6  cd /tmp
>>>>        7  rm -rf lnk src
>>>>        8  mkdir lnk src
>>>>        9  mount_nullfs src lnk
>>>>       10  mount | grep lnk
>>>>       11  df -h .
>>>>       12  dd if=/dev/zero of=lnk/foo bs=1G count=3
>>>>       13  df -h .
>>>>       14  rm lnk/foo
>>>>       15  df -h .
>>>>       16  umount /tmp/lnk
>>>>       17  df -h .
>>>> $ ./richard.sh
>>>> FreeBSD t2.osted.lan 11.0-ALPHA2 FreeBSD 11.0-ALPHA2 #0 r301722: Thu Jun  9 12:09:39 CEST 2016     pho at t2.osted.lan:/usr/src/sys/amd64/compile/PHO  amd64
>>>> /dev/da0p3 on /tmp (ufs, NFS exported, local, soft-updates)
>>>> /tmp/src on /tmp/lnk (nullfs, local)
>>>> Filesystem    Size    Used   Avail Capacity  Mounted on
>>>> /dev/da0p3     97G    1,6G     87G     2%    /tmp
>>>> 3+0 records in
>>>> 3+0 records out
>>>> 3221225472 bytes transferred in 47.658947 secs (67589102 bytes/sec)
>>>> Filesystem    Size    Used   Avail Capacity  Mounted on
>>>> /dev/da0p3     97G    4,6G     84G     5%    /tmp
>>>> Filesystem    Size    Used   Avail Capacity  Mounted on
>>>> /dev/da0p3     97G    1,6G     87G     2%    /tmp
>>>> Filesystem    Size    Used   Avail Capacity  Mounted on
>>>> /dev/da0p3     97G    1,6G     87G     2%    /tmp
>>>> $
>>>>
>>>> - Peter
>>> i'm also using ufs.
>>>
>>> root at main2:/tmp # ./richard.sh
>>> FreeBSD main2.bader.loc 10.2-RELEASE-p18 FreeBSD 10.2-RELEASE-p18 #8
>>> r301112: Wed Jun  1 11:08:24 CEST 2016
>>> root at main2.bader.loc:/usr/obj/usr/src/sys/MYKERNEL  amd64
>>> /dev/ada0p2 on / (ufs, local, journaled soft-updates)
>>> /tmp/src on /tmp/lnk (nullfs, local)
>>> Filesystem     Size    Used   Avail Capacity  Mounted on
>>> /dev/ada0p2     58G     40G     13G    75%    /
>>> 3+0 records in
>>> 3+0 records out
>>> 3221225472 bytes transferred in 8.679717 secs (371121023 bytes/sec)
>>> Filesystem     Size    Used   Avail Capacity  Mounted on
>>> /dev/ada0p2     58G     43G     10G    80%    /
>>> Filesystem     Size    Used   Avail Capacity  Mounted on
>>> /dev/ada0p2     58G     43G     10G    80%    /
>>> Filesystem     Size    Used   Avail Capacity  Mounted on
>>> /dev/ada0p2     58G     40G     13G    75%    /
>>>
>> Hmm. I tried again on SU+J but I still do not see any problems on
>> HEAD. I'll build r301112 and see what happens.
> There were several bugs fixed since 10.2 in nullfs.  Use -o nocache
> to disable nullfs vnode caching, which most likely fix it for 10.2.
> _______________________________________________

Thanks,

with 'mount_nullfs -o nocache src lnk' it works as expected

- richard


-- 
Dipl.Ing.Bader Richard GmbH, Helferichstrasse 32, 80999 Muenchen
Tel.:  +49 89 892205 31
Fax.:  +49 89 892205 33
http://www.bader-muenchen.de



More information about the freebsd-fs mailing list