Re: [EXTERNAL]Re: [EXTERNAL]Re: ext4 build errors

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

 



On Mon, 2017-10-02 at 14:40 -0400, Theodore Ts'o wrote:
> On Mon, Oct 02, 2017 at 05:27:12PM +0000, Joakim Tjernlund wrote:
> > > This is why void * is the right thing --- it's not a u32 or a long.
> > > It's a bit array.  And in the case of the mb buddy bitmap, it's not
> > > necessarily going to start on a a byte boundary which is a multiple of
> > > 4 or 8.
> > 
> > For ext4 it might be right but I was using "you" in a wider scope,
> > the rest of kernel src.
> 
> So let's take this up to a high level of the problem.  For the bitops
> functions, there are two sorts of users.  Those that want to operate
> on an integer type (either a u32 or a long), and those that operate on
> bitarrays.  Most of the integer users are using the bitops for
> in-memory state flags.  Most of the bitarray use cases are for things
> like ext4's allocation bitmaps, where the on-disk format needs to be
> portable across architectures --- and that's where bitops_le tends to
> be used.
> 
> Taking a quick look at the output of "git grep set_bit_le", most of
> the users are just like ext4, where it's being used for a bitarray.
> So my argument I think *does* apply much more widely.

OK, I can see that. It is just that __set_bit_le is impl. using 
__set_bit(long nr, volatile unsigned long *addr) and that implies, to me,
that the memory should be long aligned. 

 Jocke



[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux