Jan Kara <jack@xxxxxxx> writes: > On Wed 09-12-09 05:11:24, Dmitry Monakhov wrote: >> Add new field "i_rsv_blocks" to generic inode. This value is >> managed similar to i_blocks, i_bytes fileds (protected by i_lock). >> This generic interface will be used by generic quota code similar >> to i_blocks. > I guess some people won't like bloating the VFS inode. It personally > makes my "quota" life easier but not that many filesystems need this > (currently I'm aware of only ext4) so their complaints are reasonable... Please read my answer to Christoph. >From other point of view, we may change inode structure like this: struct quota_ptr { struct dquot *dquot[MAXQUOTAS]; }; struct quota_rsv_ptr { struct dquot *dquot[MAXQUOTAS]; qsize_t reservation; }; struct inode { .... #ifdef CONFIG_QUOTA union { struct quota_ptr i_dquot; struct quota_rsv_ptr i_dquot_rsv; }; #endif .... }; Most file systems will use i_dquot, and file systems with reservation will use quota_rsv_ptr. Imho this is even better than, macro approach. But this requires huge patch for each fs, but who cares. > If we would eventually decide to go this way, I'd account reserved > space in bytes - quota is really accounted in bytes (as some filesystems > need this). Yes you right, I wasn't happy about this too, Will redo. > > Honza -- 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