On  7 Jun 00 at 6:20, Alexander Viro wrote:
> On Wed, 7 Jun 2000, Alexander Viro wrote:
> 
> Aiiee... Idiot me didn't notice that
>     a) atomic_read() is signed
>     b) 0 > (1<<31) on 32bit platforms
>     c) looking into logs is useful, even if flamage is actually
> harmless.
> 
> Sorry, folks. Fix (compared to ac10-M) is to change the line 820 in
> fs/inode.c to
>                 if ((unsigned)atomic_read(&inode->i_count)>(1U<<31)) {
> 
Hi Al,
  I'm sorry, but what's wrong with
  
if (atomic_read(&inode->i_count) < 0) {
   ...
}

except that it produces different result for 0x80000000 ? If someone
has 64bit atomic, why limit them to 31 bits only?

(also, smp sparc has only 24-bit atomic values, but it does not matter
here, as it is signed, so underflow is catched correctly anyway)

                                    Best regards,
                                            Petr Vandrovec
                                            [EMAIL PROTECTED]
                                            

Reply via email to