[email protected]
[Top] [All Lists]

Re: [ufs-discuss] code review 5090322

Subject: Re: [ufs-discuss] code review 5090322
Date: Wed, 13 May 2009 20:57:36 +0200
On 05/13/09 14:31, Jim Rice wrote:
I have uploaded webrevs for code review to http://cr.opensolaris.org/~jr26306/fix-5090322/

which is the suggested fix for http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=5090322

5090322 when disabling quotas on logging no delta for quota inode gets written

The fix is contributed by Uros Nedic

I'm sorry, but I don't like the mode bits addition of IFQUOT anymore for several reasons ;-)
I should probably have updated the bug since a long time...

- remember the mode bits are part of the ondisk inode, using it just as a flag
around the TRANS_SYNCIP() call is a misuse of the mode bits
- IFQUOT should indicate this being the quota file inode, fine, but...
- the quota file is also a regular file so we shouldn't be using the mode bits here - what also complicates matters is we do not have real control over the creation/deletion of it as it is done outside the kernel (sigh this is something I really wanted to change since a long time...I'll file an RFE for that and a proposal over the next weeks, perhaps someone is still interested enough) - another reason for not using mode bits or the ondisk cflags unfortunately.

what should be done instead is add a new i_flag IQUOT and flag the quota file inode with it when we accociate it with 'ufsvfsp->vfs_qinod' when we enable quotas

replace all the checks for 'ufsvfsp->vfs_qinod' with a check for i_flag being IQUOT were apporpriate. do not forgett to clear the flag when we might happen to re-use a former quota inode that's still in the cache, ie ufs_reset_vnode() as it may have been
deleted and now changes identity in ufs_iget()


ufs-discuss mailing list
[email protected]

<Prev in Thread] Current Thread [Next in Thread>