public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
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

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox