From: Eric Sandeen <sandeen@sandeen.net>
To: Phil White <cerise-xfs@l.armory.com>, Dave Chinner <david@fromorbit.com>
Cc: xfs@oss.sgi.com
Subject: Re: Problem with mkfs.xfs on a regular file
Date: Thu, 28 Nov 2013 09:38:25 -0600 [thread overview]
Message-ID: <52976371.2030009@sandeen.net> (raw)
In-Reply-To: <20131128114705.GJ13101@boogeyman>
On 11/28/13, 5:47 AM, Phil White wrote:
> On Thu, Nov 28, 2013 at 09:01:07PM +1100, Dave Chinner wrote:
>> On Wed, Nov 27, 2013 at 11:34:35PM -0600, Eric Sandeen wrote:
>>> If only we had some way to tell, programatically, whether the mkfs target
>>> was a regular file or a block device, eh? ;)
>>>
>>> Seriously, I always thought the requirment to specify "-d file" was silly.
>>> And now I think it's even more silly, if it actually is required for
>>> proper behavior...
>>
>> It has always been required if you want mkfs to create the file for
>> you. And given that doing stuff like ioctl(BLKDISCARD) on files is
>> completely wrong, so I think it really is needed...
>>
>>>> What mkfs needs to do is reject devices that are files when "-d
>>>> file", "-l file" and "-r file" is not specified, and the problem
>>>> will go away because it will catch users who forget to tell mkfs
>>>> that it is supposed to be operating on an image file...
>>>
>>> Or maybe just stat() it, and DTRT?
>>
>> Well, we need to stat it to make sure that it's a file if "-d file"
>> is specified, and a block device if it's not. That will prevent this
>> problem. Every other xfsprogs utility has to be told that it is
>> being pointed at an image file rather than a block device, so why
>> should mkfs be any different?
>
> FWIW, I have a patch to just stat() and discard LIBXFS_DIRECT if the
> target is not a block device. It worked for what I was doing and I
> wouldn't mind cleaning it up if need be.
I wonder if that's a little too surgical; today if we specify -d file,
we get xi.disfile=1, and set xi.dcreat=1 as well as long as -N wasn't specified.
Having xi.disfile set affects a few other behaviors after all, so
I just wonder if we should stat it early, set xi.disfile, and let all the
normal paths take it from there. I'm not quite sure.
> The main thing is that it seems to me that mkfs mandates that the situation
> I outlined shouldn't ever fail. That's probably something worth adding to
> xfstests as well.
>
> And writing that test, I suppose, is something I don't mind doing either.
Tests are always welcome, that'd be great!
Thanks,
-Eric
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2013-11-28 15:38 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-27 2:31 Problem with mkfs.xfs on a regular file Phil White
2013-11-27 2:36 ` Phil White
2013-11-27 2:38 ` Nathan Scott
2013-11-27 2:41 ` Phil White
2013-11-27 2:47 ` Dave Chinner
2013-11-27 2:47 ` Dave Chinner
2013-11-28 2:39 ` Eric Sandeen
2013-11-28 5:16 ` Dave Chinner
2013-11-28 5:34 ` Eric Sandeen
2013-11-28 10:01 ` Dave Chinner
2013-11-28 11:47 ` Phil White
2013-11-28 15:38 ` Eric Sandeen [this message]
2013-11-28 15:32 ` Eric Sandeen
2013-11-28 21:12 ` Dave Chinner
2013-11-29 1:28 ` Dave Chinner
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=52976371.2030009@sandeen.net \
--to=sandeen@sandeen.net \
--cc=cerise-xfs@l.armory.com \
--cc=david@fromorbit.com \
--cc=xfs@oss.sgi.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.