On Mon, Nov 01, 2010 at 03:45:36PM -0400, Mimi Zohar wrote: > Define iget/iput_readcount() functions to be called from the VFS layer. Can't say I like the function names. i_readcount_{inc,dec} seem more appropriate, especially so they don't get confused with inode reference counting... Cheers, Dave. > +void iput_readcount(struct inode *inode) > +{ > + spin_lock(&inode->i_lock); > + if (unlikely((atomic_read(&inode->i_readcount) == 0))) > + printk(KERN_INFO "i_readcount: imbalance ino %ld\n", > + inode->i_ino); > + else > + atomic_dec(&inode->i_readcount); > + spin_unlock(&inode->i_lock); > +} No need for the lock just to indicate an imbalance. You could just use: if (atomic_dec_return(&inode->i_readcount) < 0) { ..... } Given this is an integrity subsystem, I suspect the correct thing to do here is BUG(), not just issue an informational message that something is wrong with the integrity tracking.... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html