Re: XFS accessing arch-specific structures

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

 



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
-
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