Re: [PATCH] pipefs unique inode numbers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bodo Eggert wrote:
> change pipefs to use a unique inode number equal to the memory
> address unless it would be truncated.
>
> Signed-Off-By: Bodo Eggert <[email protected]>
> ---
> Tested on i386.
>
> --- 2.6.19/fs/pipe.c.ori	2007-01-30 22:02:46.000000000 +0100
> +++ 2.6.19/fs/pipe.c	2007-01-30 23:22:27.000000000 +0100
> @@ -864,6 +864,10 @@ static struct inode * get_pipe_inode(voi
>  	inode->i_uid = current->fsuid;
>  	inode->i_gid = current->fsgid;
>  	inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
> +	/* The address of *inode is unique, so we'll get an unique inode number.
> +	 * Off cause this will not work for 32 bit inodes on 64 bit systems. */
> +	if (sizeof(inode->i_ino) >= sizeof(struct inode*))
> +		inode->i_ino = (unsigned int) inode;
>
>  	return inode;
>

Also, that patch would break many 32-bit programs not compiled with large
offsets when run in compatibility mode on a 64-bit kernel. If they were to
do a stat on this inode, it would likely generate an EOVERFLOW error since
the pointer address would probably not fit in a 32 bit field.

That problem was the whole impetus for this set of patches.

-- Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux