linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Akira Fujita <a-fujita@rs.jp.nec.com>
To: Andreas Dilger <adilger@sun.com>
Cc: "Steinar H. Gunderson" <sgunderson@bigfoot.com>,
	Kazuya Mio <k-mio@sx.jp.nec.com>,
	linux-ext4@vger.kernel.org
Subject: Re: Segmentation fault in e4defrag -c
Date: Wed, 01 Jul 2009 08:43:14 +0900	[thread overview]
Message-ID: <4A4AA312.8000007@rs.jp.nec.com> (raw)
In-Reply-To: <20090629214959.GT3570@webber.adilger.int>

Hi,
Andreas Dilger wrote:
> On Jun 29, 2009  15:03 +0900, Akira Fujita wrote:
>>>   Size: 4050385   	Blocks: 0          IO Block: 4096   regular file
>>> Device: fd12h/64786d	Inode: 688755      Links: 1
>>> Access: (0644/-rw-r--r--)  Uid: ( 1000/   sesse)   Gid: ( 1000/   sesse)
>>> Access: 2009-05-30 03:08:38.724454316 +0200
>>> Modify: 2008-09-01 20:38:26.135589449 +0200
>>> Change: 2008-09-01 20:38:26.135589449 +0200
>> File size is "4050385" but Blocks is "0"
>> probably means blocks are not allocated yet or file is *corrupted*.
>> Is your mp3 file available?
> 
> Well, this is a sparse file for some reason (e.g. failed mp3 p2p download).
> 

Ah, may be so.

>> Anyway, with this patch, 0 blocks file is skipped,
>> therefore the segmentation fault you had will not happen.
> 
> Is it possible that the code has not been tested with sparse files?
> In that case, the check for size == 0 is only going to catch a single
> case of problem, and not handle general sparse files.
> 

I have tested files that have sparse blocks
(e.g. files that have sparse blocks in its beginning,
middle and those combinations) and got fine results.
Unfortunately, like this case, only 0 blocks file (all sparse blocks)
has not been tested yet.

But the kernel space (EXT4_IOC_MOVE_EXTENT) does not have this kind of issue.
Because there is a check of whether the extents of orig_inode
that ext4_ext_find_extent() gets is NULL.
If extents is NULL or ext4_ext_find_extent() fails,
ext4_move_extents() returns an error value (e.g. EINVAL) to the user space.

Regards,
Akira Fujita



      reply	other threads:[~2009-06-30 23:43 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-25 10:55 Segmentation fault in e4defrag -c Steinar H. Gunderson
2009-06-26  8:32 ` Kazuya Mio
2009-06-26  9:38   ` Steinar H. Gunderson
2009-06-29  6:03     ` Akira Fujita
2009-06-29 21:49       ` Andreas Dilger
2009-06-30 23:43         ` Akira Fujita [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=4A4AA312.8000007@rs.jp.nec.com \
    --to=a-fujita@rs.jp.nec.com \
    --cc=adilger@sun.com \
    --cc=k-mio@sx.jp.nec.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=sgunderson@bigfoot.com \
    /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;
as well as URLs for NNTP newsgroup(s).