All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <matthew@wil.cx>
To: Jeff Layton <jlayton@redhat.com>
Cc: linux-fsdevel@vger.kernel.org
Subject: Re: [RFC][PATCH] ensure i_ino uniqueness in filesystems without permanent inode numbers (via pointer conversion)
Date: Fri, 17 Nov 2006 06:50:37 -0700	[thread overview]
Message-ID: <20061117135037.GB18567@parisc-linux.org> (raw)
In-Reply-To: <1163770980.13410.39.camel@dantu.rdu.redhat.com>

On Fri, Nov 17, 2006 at 08:43:00AM -0500, Jeff Layton wrote:
> +/* convert an inode address into an unsigned int and xor it with a random value
> + * determined at boot time */
> +static inline unsigned int inode_to_uint (struct inode *inode)
> +{
> +	return ((((unsigned long) (inode - (struct inode *) 0))
> +		 ^ inode_xor_mask) & 0xffffffff);
> +}

Seems a little obfuscated.  Why not simply:

	return ((unsigned long)inode ^ inode_xor_mask) & 0xffffffff;

> @@ -125,7 +135,6 @@ static struct inode *alloc_inode(struct 
>  		inode->i_size = 0;
>  		inode->i_blocks = 0;
>  		inode->i_bytes = 0;
> -		inode->i_generation = 0;
>  #ifdef CONFIG_QUOTA
>  		memset(&inode->i_dquot, 0, sizeof(inode->i_dquot));
>  #endif

It seems to me that filesystems with fake inodes could instead
initialise i_generation to, say, jiffies.  What do you think to that?

I like this idea, very creative.

  reply	other threads:[~2006-11-17 13:50 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-17 13:43 [RFC][PATCH] ensure i_ino uniqueness in filesystems without permanent inode numbers (via pointer conversion) Jeff Layton
2006-11-17 13:50 ` Matthew Wilcox [this message]
2006-11-17 14:14   ` Jörn Engel
2006-11-17 14:24     ` Jeff Layton
2006-11-17 14:21   ` Jeff Layton
2006-11-17 16:31     ` Jeff Layton
2006-11-17 14:24 ` Matthew Wilcox
2006-11-17 14:48   ` Jeff Layton
2006-11-17 15:01     ` Dave Kleikamp
2006-11-17 15:06       ` Jeff Layton
2006-11-17 15:26         ` Dave Kleikamp

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=20061117135037.GB18567@parisc-linux.org \
    --to=matthew@wil.cx \
    --cc=jlayton@redhat.com \
    --cc=linux-fsdevel@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.