[PATCH 15/19] mkfs: don't treat files as though they are block devices
Jan Tulak
jtulak at redhat.com
Fri Apr 22 02:46:29 CDT 2016
On Thu, Apr 21, 2016 at 10:13 PM, Eric Sandeen <sandeen at sandeen.net> wrote:
>
>
> On 4/21/16 8:43 AM, Jan Tulak wrote:
> > On Thu, Apr 21, 2016 at 11:39 AM, Jan Tulak <jtulak at redhat.com <mailto:
> jtulak at redhat.com>>wrote:
> >
> > From: Dave Chinner <dchinner at redhat.com <mailto:dchinner at redhat.com
> >>
> >
> > THIS PATCH HAS KNOWN ISSUES - it fails xfs/206 and xfs/216 tests, as
> it
> > shrinks a file instead just not using it entirely, when -d size is
> used.
> >
> >
> > So the shrinking is happening here:
> > 3127 /*
> > 3128 * If the data area is a file, then grow it out to its final
> size
> > 3129 * so that the reads for the end of the device in the mount
> code
> > 3130 * will succeed.
> > 3131 */
> > 3132 if (xi.disfile && ftruncate64(xi.dfd, dblocks * blocksize) <
> 0) {
> >
> >
> > Before the patch, xi.disfile was 0 and so it didn't shrink the file
> > to the size of the new FS. Now, what is the correct solve to this?
> > Tests are written for the old behaviour, but this shrinking seems to
> > be an intentional thing. It seems that the FS works ok even when this
> > truncating is not applied, so I think that I should remove this chunk
> > (or change it to xi.dcreate=1 only), and keep the old behaviour.
> >
> > What do you think about it, guys?
>
> Can't remove it; that would break the other side of things, if you try
> to mkfs.xfs -d size=2g on an existing 1g file... mount tries to do
> IO to the last block, and if it's not truncated out, that will fail
> (as the comment says).
>
> I suppose the simple way to fix it is to only truncate up, never down.
>
> i.e. truncate to max(dblocks * blocksize, st_size) or
> if (xi.disfile && st_size < dblocks * blocksize) { truncate ... }
>
All right, it seems that I should have read the man page, and not just
look on the first sentence or two... <emoticon of me hitting a wall with
my head repeatedly>.
Now it works, thanks.
Jan
--
Jan Tulak
jtulak at redhat.com / jan at tulak.me
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://oss.sgi.com/pipermail/xfs/attachments/20160422/a6a7a0da/attachment-0001.html>
More information about the xfs
mailing list