From: Jan Kara <jack@suse.cz>
To: Jan Kara <jack@suse.cz>
Cc: Andreas Dilger <andreas.dilger@oracle.com>,
tytso@mit.edu, linux-ext4@vger.kernel.org
Subject: Re: [PATCH,RFC] Adding quotacheck functionality to e2fsck
Date: Mon, 29 Mar 2010 11:35:51 +0400 [thread overview]
Message-ID: <87ljdblgvc.fsf@openvz.org> (raw)
In-Reply-To: <87tys3hwvd.fsf@openvz.org> (Dmitry Monakhov's message of "Fri, 26 Mar 2010 19:27:02 +0300")
Dmitry Monakhov <dmonakhov@openvz.org> writes:
> Dmitry Monakhov <dmonakhov@openvz.org> writes:
>
>> Jan Kara <jack@suse.cz> writes:
>>
>>> On Fri 26-03-10 11:18:28, Dmitry Monakhov wrote:
>>>> > If there isn't a reason to continue using unjournaled quota (i.e. it
>>>> > doesn't break to just move to journaled quota everywhere), then these
>>>> > could just become aliases for the journaled quota implementation. The
>>>> > other alternative is to deprecate these options in the next kernel and
>>>> > have it print out a warning on the console to tell the user to switch
>>>> > over to the journaled version.
>>>> The only reason to not use journalled quota by default is the currently
>>>> it is a bit slower than unjournalled variant.
>>>> This is because each quota change result in synchronous quotafile
>>>> update in per-sb-page-cache. And this update is protected by i_mutex.
>>>> and dqio_mutex. It may be fixed easily. I've sent a RFC patch two
>>>> month ago. I'll update it and will submit it this weekend.
>>> Well, there is also some overhead caused by more IO we have to do for
>>> quota journaling and that is essentially unavoidable. But still I believe
>>> we should transition people to journaled quotas...
>> Agree. IO overhead due to journalled quota is almost invisible.
>> And it must be enabled by default after most annoying lock contention
>> will be resolved.
>>
>> BTW. i've had bad news. Seems what journalled was broken recently.
>> Right after i've wrote the first letter. i've started to update the
>> quota-speedup patch. And during testing phase i've found that
>> journalled quota is inconsistent after power-failure(w/o my patches).
>> I've tested ext4.git/for-next branch
>> Currently i'm investing the issue.
> Ok, i've found the root of issue. dquot_transfer() wasn't called for
> symlinks on chown due to lack of ->setattr operation.
> Before 'dquot: cleanup dquot transfer routine' patch quota_transfer()
> was performed by notify_transfer() itself.
Forgot to mention that it is not journalled quota issue. But just a
generic quota regression.
> Now it must be handled by in corresponding ->setattr
>
> BTW i'm wondering, even if we don't care about quota. Inode's attributes
> are metadata and must goes trough journal(i.e via extXXX_setattr).
> so every inode type must has corresponding ->setattr.
As is is always happens. Each modification result in unexpected regressions.
In case of quota cleanup patch-set movement of quota-transfer from
generic-setattr to fs-speciffic ->setattr result in hidden regression
because not all inode types has correct ->setattr methods.
Where are too many filesystems to look-at. Let's add a some
sanity check in to notify_changes(), and remove it after 2/3 moths.
Some thing like this:
static int quota_check(struct inode *inode, struct iattr *attr)
{
if (!sb_any_quota_active(inode->i_sb))
return 0;
if (((attr->ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
(attr->ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid) ||
(attr->ia_valid & ATTR_SIZE)) && !inode->i_op->setattr)
{
WARN_ON(1);
return 1;
}
return 0;
}
next prev parent reply other threads:[~2010-03-29 7:36 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-26 0:20 [PATCH,RFC] Adding quotacheck functionality to e2fsck Theodore Ts'o
2010-03-26 0:47 ` Jan Kara
2010-03-26 3:38 ` tytso
2010-03-26 7:01 ` Andreas Dilger
2010-03-26 8:18 ` Dmitry Monakhov
2010-03-26 10:57 ` Jan Kara
2010-03-26 11:15 ` Dmitry Monakhov
2010-03-26 16:27 ` Dmitry Monakhov
2010-03-29 7:35 ` Jan Kara [this message]
2010-03-29 7:50 ` dmonakhov
2010-03-26 10:54 ` Jan Kara
2010-03-26 13:51 ` tytso
2010-03-30 0:43 ` Jan Kara
2010-03-26 10:42 ` Jan Kara
2010-03-26 13:38 ` tytso
2010-03-30 0:55 ` Jan Kara
2010-03-30 5:26 ` Dmitry Monakhov
2010-03-30 12:42 ` Jan Kara
2010-03-26 8:09 ` Dmitry Monakhov
2010-03-26 11:00 ` Jan Kara
2010-03-26 13:55 ` tytso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ljdblgvc.fsf@openvz.org \
--to=jack@suse.cz \
--cc=andreas.dilger@oracle.com \
--cc=linux-ext4@vger.kernel.org \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.