|
|
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
Jim,
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()
---
frankB
_______________________________________________
ufs-discuss mailing list
ufs-discuss@xxxxxxxxxxxxxxx
|
|