All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Mark Fasheh <mfasheh@suse.com>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH 13/39] ocfs2: Add extended attribute support
Date: Thu, 2 Oct 2008 10:16:44 +0200	[thread overview]
Message-ID: <20081002081644.GB24717@lst.de> (raw)
In-Reply-To: <1222293680-15451-14-git-send-email-mfasheh@suse.com>

On Wed, Sep 24, 2008 at 03:00:54PM -0700, Mark Fasheh wrote:
>  	xattr.o			\
> +	xattr_user.o		\
> +	xattr_trusted.o

Please don't split this up, it's always been a really stupid idea in
extN.  The only difference between secure, trusted and user attrs is
that they go into a different namespace bit (and have different
permission checking, but that's handled in the VFS).  I have some
upcoming patches to store a fs private flag in struct xattr_handler
so that even those flags wrappers can go away, and each of the
namespaces will just be five lines of code for the xattr_handler
declaration.

> +static inline struct xattr_handler *ocfs2_xattr_handler(int name_index)
> +{
> +	struct xattr_handler *handler = NULL;
> +
> +	if (name_index > 0 && name_index < OCFS2_XATTR_MAX)
> +		handler = ocfs2_xattr_handler_map[name_index];
> +
> +	return handler;
> +}

You seem to need the handler mostly for getting back to the prefix
from the handler.  This is a pretty clear indicator that you don't
want to use the xattr_handler splitting but deal with the whole
attr name.  Take a look at the btrfs code after my recent xattr changes
on how to handle this more nicely.


> +
> +static inline u32 ocfs2_xattr_name_hash(struct inode *inode,
> +					char *prefix,
> +					int prefix_len,
> +					char *name,
> +					int name_len)

And I think there's far too much inlining going on in here..

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: Mark Fasheh <mfasheh@suse.com>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	ocfs2-devel@oss.oracle.com
Subject: Re: [Ocfs2-devel] [PATCH 13/39] ocfs2: Add extended attribute support
Date: Thu, 2 Oct 2008 10:16:44 +0200	[thread overview]
Message-ID: <20081002081644.GB24717@lst.de> (raw)
In-Reply-To: <1222293680-15451-14-git-send-email-mfasheh@suse.com>

On Wed, Sep 24, 2008 at 03:00:54PM -0700, Mark Fasheh wrote:
>  	xattr.o			\
> +	xattr_user.o		\
> +	xattr_trusted.o

Please don't split this up, it's always been a really stupid idea in
extN.  The only difference between secure, trusted and user attrs is
that they go into a different namespace bit (and have different
permission checking, but that's handled in the VFS).  I have some
upcoming patches to store a fs private flag in struct xattr_handler
so that even those flags wrappers can go away, and each of the
namespaces will just be five lines of code for the xattr_handler
declaration.

> +static inline struct xattr_handler *ocfs2_xattr_handler(int name_index)
> +{
> +	struct xattr_handler *handler = NULL;
> +
> +	if (name_index > 0 && name_index < OCFS2_XATTR_MAX)
> +		handler = ocfs2_xattr_handler_map[name_index];
> +
> +	return handler;
> +}

You seem to need the handler mostly for getting back to the prefix
from the handler.  This is a pretty clear indicator that you don't
want to use the xattr_handler splitting but deal with the whole
attr name.  Take a look at the btrfs code after my recent xattr changes
on how to handle this more nicely.


> +
> +static inline u32 ocfs2_xattr_name_hash(struct inode *inode,
> +					char *prefix,
> +					int prefix_len,
> +					char *name,
> +					int name_len)

And I think there's far too much inlining going on in here..


  parent reply	other threads:[~2008-10-02  8:16 UTC|newest]

Thread overview: 139+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-24 22:00 [Ocfs2-devel] [PATCH 0/39] Ocfs2 updates for 2.6.28 Mark Fasheh
2008-09-24 22:00 ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 01/39] ocfs2: POSIX file locks support Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-10-02  6:11   ` [Ocfs2-devel] " Andrew Morton
2008-10-02  6:11     ` Andrew Morton
2008-10-07 20:09     ` [Ocfs2-devel] " Mark Fasheh
2008-10-07 20:09       ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 02/39] ocfs2: Track local alloc bits internally Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 03/39] ocfs2: throttle back local alloc when low on disk space Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-10-02  6:11   ` [Ocfs2-devel] " Andrew Morton
2008-10-02  6:11     ` Andrew Morton
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 04/39] ocfs2: track local alloc state via debugfs Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-10-02  6:11   ` [Ocfs2-devel] " Andrew Morton
2008-10-02  6:11     ` Andrew Morton
2008-10-07 20:10     ` [Ocfs2-devel] " Mark Fasheh
2008-10-07 20:10       ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 05/39] ocfs2: Modify ocfs2_num_free_extents for future xattr usage Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 06/39] ocfs2: Use ocfs2_extent_list instead of ocfs2_dinode Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 07/39] ocfs2: Abstract ocfs2_extent_tree in b-tree operations Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 08/39] ocfs2: Make high level btree extend code generic Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 09/39] ocfs2: Add the basic xattr disk layout in ocfs2_fs.h Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 10/39] ocfs2: Add helper function in uptodate.c for removing xattr clusters Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-10-02  6:11   ` [Ocfs2-devel] " Andrew Morton
2008-10-02  6:11     ` Andrew Morton
2008-10-07 20:18     ` [Ocfs2-devel] " Mark Fasheh
2008-10-07 20:18       ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 11/39] ocfs2: Add extent tree operation for xattr value btrees Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-10-02  6:12   ` [Ocfs2-devel] " Andrew Morton
2008-10-02  6:12     ` Andrew Morton
2008-10-07 20:19     ` [Ocfs2-devel] " Mark Fasheh
2008-10-07 20:19       ` Mark Fasheh
2008-10-02  6:12   ` [Ocfs2-devel] " Andrew Morton
2008-10-02  6:12     ` Andrew Morton
2008-10-07 21:19     ` [Ocfs2-devel] " Mark Fasheh
2008-10-07 21:19       ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 12/39] ocfs2: reserve inline space for extended attribute Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 13/39] ocfs2: Add extended attribute support Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-10-02  6:12   ` [Ocfs2-devel] " Andrew Morton
2008-10-02  6:12     ` Andrew Morton
2008-10-07 20:22     ` [Ocfs2-devel] " Mark Fasheh
2008-10-07 20:22       ` Mark Fasheh
2008-10-02  8:16   ` Christoph Hellwig [this message]
2008-10-02  8:16     ` [Ocfs2-devel] " Christoph Hellwig
2008-10-07 22:08     ` Mark Fasheh
2008-10-07 22:08       ` Mark Fasheh
2008-10-08  0:37       ` Tao Ma
2008-10-08  1:56       ` Tiger Yang
2008-10-08  1:56         ` Tiger Yang
2008-10-08 13:16         ` Christoph Hellwig
2008-10-08 13:16           ` Christoph Hellwig
2008-10-08 13:34         ` Christoph Hellwig
2008-10-08 13:34           ` Christoph Hellwig
2008-10-08 14:04           ` Tao Ma
2008-10-08 14:04             ` Tao Ma
2008-10-09  0:38             ` Mark Fasheh
2008-10-09  0:38               ` Mark Fasheh
2008-10-08 13:22       ` Christoph Hellwig
2008-10-08 13:22         ` Christoph Hellwig
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 14/39] ocfs2: Add xattr index tree operations Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 15/39] ocfs2: Add xattr bucket iteration for large numbers of EAs Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 16/39] ocfs2: Add xattr lookup code xattr btrees Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 17/39] ocfs2: Optionally limit extent size in ocfs2_insert_extent() Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:00 ` [Ocfs2-devel] [PATCH 18/39] ocfs2: Enable xattr set in index btree Mark Fasheh
2008-09-24 22:00   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 19/39] ocfs2: Delete all xattr buckets during inode removal Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 20/39] ocfs2: Add incompatible flag for extended attribute Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 21/39] ocfs2: fix printk format warnings Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 22/39] ocfs2: Prefix the extent tree operations structure Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 23/39] ocfs2: Prefix the ocfs2_extent_tree structure Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 24/39] ocfs2: Make ocfs2_extent_tree get/put instead of alloc Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 25/39] ocfs2: Make 'private' into 'object' on ocfs2_extent_tree Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 26/39] ocfs2: Provide the get_root_el() method to ocfs2_extent_tree_operations Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 27/39] ocfs2: Use struct ocfs2_extent_tree in ocfs2_num_free_extents() Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 28/39] ocfs2: Determine an extent tree's max_leaf_clusters in an et_op Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 29/39] ocfs2: Create specific get_extent_tree functions Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 30/39] ocfs2: Add an insertion check to ocfs2_extent_tree_operations Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 31/39] ocfs2: Make ocfs2_extent_tree the first-class representation of a tree Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 32/39] ocfs2: Comment struct ocfs2_extent_tree_operations Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 33/39] ocfs2: Change ocfs2_get_*_extent_tree() to ocfs2_init_*_extent_tree() Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 34/39] ocfs2: bug-fix for journal extend in xattr Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 35/39] ocfs2: Resolve deadlock in ocfs2_xattr_free_block Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 36/39] ocfs2: Limit inode allocation to 32bits Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 37/39] ocfs2: Add the 'inode64' mount option Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 38/39] ocfs2: Switch over to JBD2 Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01 ` [Ocfs2-devel] [PATCH 39/39] ocfs2: Add xattr mount option in ocfs2_show_options() Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-24 22:01   ` Mark Fasheh
2008-09-27  0:12 ` [Ocfs2-devel] [PATCH 0/39] Ocfs2 updates for 2.6.28 Marcos E. Matsunaga
2008-09-27 16:59   ` Mark Fasheh
2008-09-28  5:16 ` Tao Ma
2008-09-28  5:16   ` Tao Ma

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=20081002081644.GB24717@lst.de \
    --to=hch@lst.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mfasheh@suse.com \
    --cc=ocfs2-devel@oss.oracle.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.