From: Eric Bambach <eric@cisu.net>
To: prw@ceiriog1.demon.co.uk
Cc: linux-kernel@vger.kernel.org
Subject: Re: HFSPlus ate my free space!
Date: Thu, 27 Oct 2005 17:04:04 -0500 [thread overview]
Message-ID: <200510271704.04941.eric@cisu.net> (raw)
In-Reply-To: <1130151525.16253.2.camel@desdemona.pd.rpd.hpa.org.uk>
On Monday 24 October 2005 05:58 am, Peter Wainwright wrote:
> >Hi Roman,
> >
> >I am using hfsplus (journalled) to mount a 10Gb partition on an usb
> >attached disk. I then copy a 3.5Gb file to the partition, then umount,
> >and mount again, and then delete it, but the space occupied by the file
> >is not freed, and doing that two times in a row ends up filling up the
> >space and I get an error that there is no space left. Here are steps
>
> to
>
> >reproduce:
>
> I have had a similar experience with my (Mac) IPOD.
> I am using kernel-2.6.12 from Fedora Core 4 on x86, but it is
> just possible that this bug is still around in the latest
> development kernels.
> fsck_hfs reveals lots of temporary files accumulating in
> the hidden directory "\000\000\000HFS+ Private Data".
> According to the HFS+ documentation these are files which
> are unlinked while in use. However, there may be a bug in
> the Linux hfsplus implementation which causes this to happen
> even when the files are not in use. It looks like the
> "opencnt" field is never initialized as (I think) it should
> be in hfsplus_read_inode. This means that a file can appear
> to be still in use when in fact it has been closed. This patch
> seems to fix it for me:
>
> diff -U3 -r linux-2.6.12-old/fs/hfsplus/super.c
> linux-2.6.12/fs/hfsplus/super.c
> --- linux-2.6.12-old/fs/hfsplus/super.c 2005-06-17 20:48:29.000000000
> +0100
> +++ linux-2.6.12/fs/hfsplus/super.c 2005-10-23 21:15:24.000000000
> +0100
> @@ -50,6 +50,7 @@
> init_MUTEX(&HFSPLUS_I(inode).extents_lock);
> HFSPLUS_I(inode).flags = 0;
> HFSPLUS_I(inode).flags = 0; HFSPLUS_I(inode).rsrc_inode =
> NULL;
> HFSPLUS_I(inode).rsrc_inode = NULL;+
> atomic_set(&HFSPLUS_I(inode).opencnt, 0);
> + atomic_set(&HFSPLUS_I(inode).opencnt, 0);
> if (inode->i_ino >= HFSPLUS_FIRSTUSER_CNID) {
> read_inode:
>
> Caveat: I'm no expert on filesystems (I thought a bit of bug-squishing
> would be a learning experience), and this is my first post
> to the kernel list, so feel free to flame me gently if this is wrong...
> Peter Wainwright
>
Hi,
One, your mailer ate the patch. Please attach or make sure your mailer isn't
wrapping lines. Two, try to CC the appropriate maintainer or else this patch
will probably get lost in the noise.
Consider yourself lightly flamed :)
--
Eric
prev parent reply other threads:[~2005-10-27 22:03 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-24 10:58 HFSPlus ate my free space! Peter Wainwright
2005-10-27 22:04 ` Eric Bambach [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200510271704.04941.eric@cisu.net \
--to=eric@cisu.net \
--cc=linux-kernel@vger.kernel.org \
--cc=prw@ceiriog1.demon.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox