xfs
[Top] [All Lists]

Re: XFS accessing arch-specific structures

To: David Howells <dhowells@xxxxxxxxxx>
Subject: Re: XFS accessing arch-specific structures
From: Nathan Scott <nathans@xxxxxxx>
Date: Tue, 13 Dec 2005 08:56:32 +1100
Cc: hch@xxxxxxxxxxxxx, linux-xfs@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
In-reply-to: <25190.1134398352@warthog.cambridge.redhat.com>; from dhowells@redhat.com on Mon, Dec 12, 2005 at 02:39:12PM +0000
References: <25190.1134398352@warthog.cambridge.redhat.com>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.2.5i
Hi there David,

On Mon, Dec 12, 2005 at 02:39:12PM +0000, David Howells wrote:
> I've got a problem in which XFS is accessing arch-specific structures, and
> thus requiring those structures to conform to its ideals. Specifically, it's
> trying to read the counter using atomic_read(), whether or not this is
> possible:
> 
>     fs/xfs/linux-2.6/sema.h:
>     #define valusema(sp)                      (atomic_read(&(sp)->count))
> 
>     compile log:
> 
>       CC      fs/xfs/xfs_inode.o
>       CC      fs/xfs/xfs_inode_item.o
>     fs/xfs/xfs_inode_item.c: In function `xfs_inode_item_pushbuf':
>     fs/xfs/xfs_inode_item.c:803: error: structure has no member named `count'
>     fs/xfs/xfs_inode_item.c:825: error: structure has no member named `count'
> 
> Can you fix this please? This will not compile with all archs.
> 
> I'm told that Christoph Hellwig may have an idea or a patch that might provide
> a fix. If it's necessary to get the count on the semaphore (which it might
> be), then you should add a function to each asm/semaphore.h to retrieve it and
> use that.

I just chatted with Christoph about this.  For some reason we thought
all instances of direct count use were in debug code (or were put into
debug-only code), but we missed the one in xfs_inode_item_pushbuf.  It
only needs to know if count > 0, so we could implement that using the
down_trylock primitive, but it'd be pretty ugly.

It looks like a couple of the arch's have now got a sem_getcount, and
Christoph is planning on reviving an earlier patch to provide that API
across all architectures, and then we can change XFS to use that.

cheers.

-- 
Nathan


<Prev in Thread] Current Thread [Next in Thread>