From: Brian Foster <bfoster@redhat.com>
To: Nick Bowler <nbowler@draconx.ca>
Cc: linux-xfs@vger.kernel.org
Subject: Re: Enlarging w/ xfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Inappropriate ioctl for device
Date: Mon, 10 Dec 2018 11:11:22 -0500 [thread overview]
Message-ID: <20181210161121.GC8356@bfoster> (raw)
In-Reply-To: <CADyTPEw_RZCC2yodbJ6W0e9mwJgQW19UXCHhcw1-tF4b0=hMjg@mail.gmail.com>
On Mon, Dec 10, 2018 at 10:39:14AM -0500, Nick Bowler wrote:
> Hi Brian,
>
> On 12/10/18, Brian Foster <bfoster@redhat.com> wrote:
> > The only thing that comes to mind while poking through the code is
> > perhaps xfsprogs is sending the traditional XFS_IOC_GROWFSDATA command
> > into the compat_ioctl() path somehow or another (assuming
> > BROKEN_X86_ALIGNMENT is set).
> >
> > What arch is your kernel/xfsprogs?
>
> This system is running an amd64 kernel with x32 userspace (including
> xfsprogs).
>
Ok, so I think that means BROKEN_X86_ALIGNMENT should be set since XFS
defines it as:
#if defined(CONFIG_IA64) || defined(CONFIG_X86_64)
#define BROKEN_X86_ALIGNMENT
...
> > What does 'cat /sys/kernel/debug/trace/trace' show if you run
> > 'trace-cmd start -e xfs:xfs_file*ioctl*' and then attempt the growfs?
>
> Looks like I don't have the required tracing enabled in my kernel
> configuration, but I can build a new one if needed. Is CONFIG_FTRACE
> sufficient for this?
>
Not sure. I think you need to have CONFIG_TRACING enabled, which may
require FTRACE and/or some other options. Hmm, perhaps you'd be covered
if you make sure you have CONFIG_DYNAMIC_FTRACE enabled.
>From your strace output:
ioctl(3, _IOC(_IOC_WRITE, 0x58, 0x6e, 0x10), 0xffcc9a80) = -1 ENOTTY (Inappropriate ioctl for device)
0x6e corresponds to the GROWFSDATA[_32] cmd and I think 0x10 is the
size, which is 16 bytes as opposed to the 12 bytes expected for
GROWFSDATA_32 for struct compat_xfs_growfs_data:
typedef struct compat_xfs_growfs_data {
__u64 newblocks; /* new data subvol size, fsblocks */
__u32 imaxpct; /* new inode space percentage limit */
} __attribute__((packed)) compat_xfs_growfs_data_t;
On a 64-bit kernel, that packed attribute is the difference between
expecting a padded 16 byte struct vs. a 12 byte version presumably from
a 32-bit application. So if you are calling into the ->compat_ioctl()
path I think the question is why is your xfsprogs sending the 16 byte
structure?
Brian
> Thanks,
> Nick
next prev parent reply other threads:[~2018-12-10 16:11 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-10 4:29 Enlarging w/ xfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Inappropriate ioctl for device Nick Bowler
2018-12-10 14:33 ` Brian Foster
2018-12-10 15:39 ` Nick Bowler
2018-12-10 16:11 ` Brian Foster [this message]
2018-12-10 16:50 ` Darrick J. Wong
2018-12-10 16:55 ` Darrick J. Wong
2018-12-10 17:46 ` Brian Foster
2018-12-10 20:54 ` Nick Bowler
2018-12-10 21:41 ` Dave Chinner
2018-12-11 7:04 ` Nick Bowler
2018-12-11 12:27 ` Brian Foster
2018-12-11 20:13 ` Nick Bowler
2018-12-11 20:20 ` Nick Bowler
2018-12-12 13:09 ` Brian Foster
2018-12-13 0:21 ` Nick Bowler
2018-12-12 4:56 ` Nick Bowler
2018-12-13 3:53 ` Dave Chinner
2018-12-13 4:14 ` Nick Bowler
2018-12-13 4:49 ` Nick Bowler
2018-12-13 21:39 ` Dave Chinner
2018-12-13 21:53 ` Nick Bowler
2018-12-14 1:43 ` Dave Chinner
2018-12-14 3:35 ` Nick Bowler
2018-12-14 3:40 ` [RFC PATCH xfstests] xfs: add tests to validate ioctl structure layout Nick Bowler
2019-01-15 15:55 ` Luis Chamberlain
2018-12-13 16:30 ` Enlarging w/ xfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Inappropriate ioctl for device Darrick J. Wong
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=20181210161121.GC8356@bfoster \
--to=bfoster@redhat.com \
--cc=linux-xfs@vger.kernel.org \
--cc=nbowler@draconx.ca \
/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.