On Fri 16-06-17 18:50:58, Tahsin Erdogan wrote: > On Thu, Jun 15, 2017 at 12:57 AM, Jan Kara <j...@suse.cz> wrote: > > Hum, rather handle this similarly to how we handle delalloc reserved space. > > Add a callback to dq_ops to get "inode usage" of an inode and then use it > > in dquot_transfer(), dquot_free_inode(), dquot_alloc_inode(). > > I tried that approach by adding a "int get_inode_usage(struct inode > *inode, qsize_t *usage)" callback to dquot_operations. Unfortunately, > ext4 code that calculates the number of internal inodes > (ext4_xattr_inode_count()) is subject to failures so the callback has > to be able to report errors. And, that itself is problematic because > we can't afford to have errors in dquot_free_inode(). If you have > thoughts about how to address this please let me know.
Well, you can just make dquot_free_inode() return error. Now most callers won't be able to do much with an error from dquot_free_inode() but that's the case also for other things during inode deletion - just handle it as other fatal failures during inode freeing. > Alternatively, I could try to make this patch less intrusive by > keeping the existing dquot_transfer() signature and add a new > dquot_transfer_usage() that accepts inode_usage as a parameter. What > do you think? That would be somewhat better than what you do in this patch but I prefer to handle this like I suggested above. Honza -- Jan Kara <j...@suse.com> SUSE Labs, CR ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Jfs-discussion mailing list Jfs-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jfs-discussion