All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sage Weil <sage@newdream.net>
To: Andi Kleen <andi@firstfloor.org>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 17/19] ceph: ioctls
Date: Wed, 22 Jul 2009 16:52:40 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.64.0907221636260.8312@cobra.newdream.net> (raw)
In-Reply-To: <878wig2vhe.fsf@basil.nowhere.org>

On Thu, 23 Jul 2009, Andi Kleen wrote:
> Sage Weil <sage@newdream.net> writes:
> 
> > A few Ceph ioctls for getting and setting file layout (striping)
> > parameters.
> 
> It would be good if you posted manpages for these ioctls
> so that the interface can be reviewed. After all
> that's intended to be used by applications, isn't it?

Is there some existing manpage I might use as a reference?  e.g., an XFS 
ioctl manpage or something similar?

I'm also happy to replace these ioctls with a virtual xattr interface 
along the lines of what Andreas proposed.  That would make it much easier 
to maintain compatibility if the support layout parameters changes 
going forward.

> There don't seem to be compat ioctl handlers?

Oops,

diff --git a/src/kernel/file.c b/src/kernel/file.c
index fbf02c3..fbb5f94 100644
--- a/src/kernel/file.c
+++ b/src/kernel/file.c
@@ -810,5 +810,8 @@ const struct file_operations ceph_file_fops = {
        .splice_read = generic_file_splice_read,
        .splice_write = generic_file_splice_write,
        .unlocked_ioctl = ceph_ioctl,
+#ifdef CONFIG_COMPAT
+       .compat_ioctl   = ceph_ioctl,
+#endif
 };

The structs are all packed.

> > diff --git a/fs/ceph/ioctl.h b/fs/ceph/ioctl.h
> > new file mode 100644
> > index 0000000..537c27b
> > --- /dev/null
> > +++ b/fs/ceph/ioctl.h
> > @@ -0,0 +1,12 @@
> > +#ifndef FS_CEPH_IOCTL_H
> > +#define FS_CEPH_IOCTL_H
> > +
> > +#include <linux/ioctl.h>
> > +#include "types.h"
> > +
> > +#define CEPH_IOCTL_MAGIC 0x97
> > +
> > +#define CEPH_IOC_GET_LAYOUT _IOR(CEPH_IOCTL_MAGIC, 1, struct ceph_file_layout)
> > +#define CEPH_IOC_SET_LAYOUT _IOW(CEPH_IOCTL_MAGIC, 2, struct ceph_file_layout)
> 
> How should the application use that if the include file is in fs/ceph?
> Should be in include/linux I guess
> 
> Also this file should define all the types needed for the interface,
> especialy struct ceph_file_layout, but no kernel internal types.

The type is defined in ceph_fs.h, which is shared/synced with the userland 
code.  It's not specific to the ioctl interface.

My understanding (IIRC after reading comments from a recent fs merge) was 
that these sorts of headers normally shouldn't go in include/linux, since 
any userland (admin) progs will have their own version anyway while being 
built, and may not be synced with the installed kernel.  I also see 
autofs, btrfs, ext4, ocfs2, xfs ioctls defined in fs/*, not include/linux?

Thanks-
sage

  reply	other threads:[~2009-07-22 23:52 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-22 19:51 [PATCH 00/19] ceph: Ceph distributed file system client v0.11 Sage Weil
2009-07-22 19:51 ` [PATCH 01/19] ceph: documentation Sage Weil
2009-07-22 19:51   ` [PATCH 02/19] ceph: on-wire types Sage Weil
2009-07-22 19:51     ` [PATCH 03/19] ceph: client types Sage Weil
2009-07-22 19:51       ` [PATCH 04/19] ceph: super.c Sage Weil
2009-07-22 19:51         ` [PATCH 05/19] ceph: inode operations Sage Weil
2009-07-22 19:51           ` [PATCH 06/19] ceph: directory operations Sage Weil
2009-07-22 19:51             ` [PATCH 07/19] ceph: file operations Sage Weil
2009-07-22 19:51               ` [PATCH 08/19] ceph: address space operations Sage Weil
2009-07-22 19:51                 ` [PATCH 09/19] ceph: MDS client Sage Weil
2009-07-22 19:51                   ` [PATCH 10/19] ceph: OSD client Sage Weil
2009-07-22 19:51                     ` [PATCH 11/19] ceph: CRUSH mapping algorithm Sage Weil
2009-07-22 19:51                       ` [PATCH 12/19] ceph: monitor client Sage Weil
2009-07-22 19:51                         ` [PATCH 13/19] ceph: capability management Sage Weil
2009-07-22 19:51                           ` [PATCH 14/19] ceph: snapshot management Sage Weil
2009-07-22 19:51                             ` [PATCH 15/19] ceph: messenger library Sage Weil
2009-07-22 19:51                               ` [PATCH 16/19] ceph: nfs re-export support Sage Weil
2009-07-22 19:51                                 ` [PATCH 17/19] ceph: ioctls Sage Weil
2009-07-22 19:51                                   ` [PATCH 18/19] ceph: debugfs Sage Weil
2009-07-22 19:51                                     ` [PATCH 19/19] ceph: Kconfig, Makefile Sage Weil
2009-07-25  5:31                                     ` [PATCH 18/19] ceph: debugfs Greg KH
2009-07-27 17:06                                       ` Sage Weil
2009-07-22 22:39                                   ` [PATCH 17/19] ceph: ioctls Andi Kleen
2009-07-22 23:52                                     ` Sage Weil [this message]
2009-07-23  6:24                                       ` Andi Kleen
2009-07-23 18:42                                         ` Sage Weil
2009-07-23 10:25                 ` [PATCH 08/19] ceph: address space operations Andi Kleen
2009-07-23 18:22                   ` Sage Weil
2009-07-23 19:16                     ` Andi Kleen
2009-07-24  4:48                       ` Sage Weil
2009-07-23 19:17                     ` Andi Kleen
2009-07-23 18:26                   ` Sage Weil
2009-07-23 18:47                     ` Trond Myklebust
2009-07-24  4:44                       ` Sage Weil
2009-07-24  6:56                         ` Andi Kleen
2009-07-24 16:52                           ` Sage Weil
2009-07-24 19:40                         ` J. Bruce Fields
  -- strict thread matches above, loose matches on Subject: below --
2009-08-05 22:30 [PATCH 00/19] ceph distributed file system client Sage Weil
2009-08-05 22:30 ` [PATCH 01/19] ceph: documentation Sage Weil
2009-08-05 22:30   ` [PATCH 02/19] ceph: on-wire types Sage Weil
2009-08-05 22:30     ` [PATCH 03/19] ceph: client types Sage Weil
2009-08-05 22:30       ` [PATCH 04/19] ceph: super.c Sage Weil
2009-08-05 22:30         ` [PATCH 05/19] ceph: inode operations Sage Weil
2009-08-05 22:30           ` [PATCH 06/19] ceph: directory operations Sage Weil
2009-08-05 22:30             ` [PATCH 07/19] ceph: file operations Sage Weil
2009-08-05 22:30               ` [PATCH 08/19] ceph: address space operations Sage Weil
2009-08-05 22:30                 ` [PATCH 09/19] ceph: MDS client Sage Weil
2009-08-05 22:30                   ` [PATCH 10/19] ceph: OSD client Sage Weil
2009-08-05 22:30                     ` [PATCH 11/19] ceph: CRUSH mapping algorithm Sage Weil
2009-08-05 22:30                       ` [PATCH 12/19] ceph: monitor client Sage Weil
2009-08-05 22:30                         ` [PATCH 13/19] ceph: capability management Sage Weil
2009-08-05 22:30                           ` [PATCH 14/19] ceph: snapshot management Sage Weil
2009-08-05 22:30                             ` [PATCH 15/19] ceph: messenger library Sage Weil
2009-08-05 22:30                               ` [PATCH 16/19] ceph: nfs re-export support Sage Weil
2009-08-05 22:30                                 ` [PATCH 17/19] ceph: ioctls Sage Weil
2009-08-06 15:41                                   ` Andi Kleen
2009-08-06 17:04                                     ` Sage Weil
2008-11-14  0:55 [PATCH 00/19] ceph: Ceph distributed file system client Sage Weil
2008-11-14  0:56 ` [PATCH 01/19] ceph: documentation Sage Weil
2008-11-14  0:56   ` [PATCH 02/19] ceph: on-wire types Sage Weil
2008-11-14  0:56     ` [PATCH 03/19] ceph: client types Sage Weil
2008-11-14  0:56       ` [PATCH 04/19] ceph: super.c Sage Weil
2008-11-14  0:56         ` [PATCH 05/19] ceph: inode operations Sage Weil
2008-11-14  0:56           ` [PATCH 06/19] ceph: directory operations Sage Weil
2008-11-14  0:56             ` [PATCH 07/19] ceph: file operations Sage Weil
2008-11-14  0:56               ` [PATCH 08/19] ceph: address space operations Sage Weil
2008-11-14  0:56                 ` [PATCH 09/19] ceph: MDS client Sage Weil
2008-11-14  0:56                   ` [PATCH 10/19] ceph: OSD client Sage Weil
2008-11-14  0:56                     ` [PATCH 11/19] ceph: CRUSH mapping algorithm Sage Weil
2008-11-14  0:56                       ` [PATCH 12/19] ceph: monitor client Sage Weil
2008-11-14  0:56                         ` [PATCH 13/19] ceph: capability management Sage Weil
2008-11-14  0:56                           ` [PATCH 14/19] ceph: snapshot management Sage Weil
2008-11-14  0:56                             ` [PATCH 15/19] ceph: messenger library Sage Weil
2008-11-14  0:56                               ` [PATCH 16/19] ceph: nfs re-export support Sage Weil
2008-11-14  0:56                                 ` [PATCH 17/19] ceph: ioctls Sage Weil

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=Pine.LNX.4.64.0907221636260.8312@cobra.newdream.net \
    --to=sage@newdream.net \
    --cc=andi@firstfloor.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /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.