Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp3091012pxu; Mon, 19 Oct 2020 03:50:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwE5vm9SKUdknbGNLG03aVCqoDitUCfDRoEjaWDZnlQFYijD3uUv7heVdZs74zCF8RPspZ0 X-Received: by 2002:a50:80e3:: with SMTP id 90mr17988836edb.39.1603104634983; Mon, 19 Oct 2020 03:50:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603104634; cv=none; d=google.com; s=arc-20160816; b=ytXObdbp0KAYkc6Vnylt+48DzybgMH2jDlRqHLDf6qOuE+x3tcV8NcP47C6UZj665a eekFJUN95DiigXifXALny0DIyVjDWhfq1g2NSOi2/GNjAArfExgtxqQNGh/P+bbN+OmK jEaaRLbrGRwtjtZbEA7tKU745Np6ADgQVvHATAoDEynXF+09/wBZvbt4zFvROznvxXGn u0I2cn9KgYrwwbdO92zZ45GEpRTdWLkPHFeOJkMd8hncirtblv2HJTzXzjaGfhPEMzLP mQNpzqPecyZBKnwyq7wFGZDn6fNktJc5fYMufXdw5ptG60lQOw3tLvXYjLwFp+0X/qff PsuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=0ncGomd2/ibTdjU2fwtXSigkNuXB/VRkvBfDY1jCJV8=; b=LE2wUzjfeNMj8Rr7DXASmMLIxnijSxGMm4tOWbP4BIlbv1sbk6PmtYzIDDHo+AwqlD 2B8ASowoPnXudM/ni8cG2P2gevYeJzDm5Rc7iF+Bqz8lG/OJbT7fxEMd5UT+EEShWopQ tHQaa+ap6tsQx9r3RV6Nthel0JfGydAUfGWt02xeEd41HcnLd9ASoqUkQ9QsB4fArirb yDBDoYM6aBDaoCEYBknmJDJWaq8DGpBVkgzPjrPCv5cnESTBBW8Xs/AmmNlQ9WawJ58a +WlZOoXaJaOVOC0ZeCKJ06zXykJHrPgYlU0ZEosVczomhPNqr0TiQljK+LcsI1Bzr9D1 EPUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@yandex-team.ru header.s=default header.b="FY/7gLxy"; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=yandex-team.ru Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g26si7670506ejb.734.2020.10.19.03.50.12; Mon, 19 Oct 2020 03:50:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@yandex-team.ru header.s=default header.b="FY/7gLxy"; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=yandex-team.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727003AbgJSJVS (ORCPT + 99 others); Mon, 19 Oct 2020 05:21:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49952 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726703AbgJSJVS (ORCPT ); Mon, 19 Oct 2020 05:21:18 -0400 X-Greylist: delayed 95 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Mon, 19 Oct 2020 02:21:17 PDT Received: from forwardcorp1j.mail.yandex.net (forwardcorp1j.mail.yandex.net [IPv6:2a02:6b8:0:1619::183]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CADADC0613CE for ; Mon, 19 Oct 2020 02:21:17 -0700 (PDT) Received: from sas1-ec30c78b6c5b.qloud-c.yandex.net (sas1-ec30c78b6c5b.qloud-c.yandex.net [IPv6:2a02:6b8:c14:2704:0:640:ec30:c78b]) by forwardcorp1j.mail.yandex.net (Yandex) with ESMTP id 85DA82E1331; Mon, 19 Oct 2020 12:19:39 +0300 (MSK) Received: from sas1-b105e6591dac.qloud-c.yandex.net (sas1-b105e6591dac.qloud-c.yandex.net [2a02:6b8:c08:4790:0:640:b105:e659]) by sas1-ec30c78b6c5b.qloud-c.yandex.net (mxbackcorp/Yandex) with ESMTP id PrUb6TSJiE-JdwaL55B; Mon, 19 Oct 2020 12:19:39 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1603099179; bh=0ncGomd2/ibTdjU2fwtXSigkNuXB/VRkvBfDY1jCJV8=; h=In-Reply-To:Message-Id:References:Date:Subject:To:From:Cc; b=FY/7gLxyt+Ez8gEmcKmId1I6/mynv4ejtIt2QjbM9YJPHl/V23rcRM1VwsIoqGL7I g6zLVXhjmOvEsvXU8lLws+4jzAT1syZdNUUgVHLfxJw+4wGl2U7RDSouUBSS7+lS1N yI4OfVc6p4Qu9EY38gBPu6U1G0BSi2E0MrN9qVUE= Authentication-Results: sas1-ec30c78b6c5b.qloud-c.yandex.net; dkim=pass header.i=@yandex-team.ru Received: from kernel1.search.yandex.net (kernel1.search.yandex.net [2a02:6b8:c02:550:0:604:9094:6282]) by sas1-b105e6591dac.qloud-c.yandex.net (smtpcorp/Yandex) with ESMTPSA id ERkL33auN0-JdnCNBUX; Mon, 19 Oct 2020 12:19:39 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (Client certificate not present) From: Roman Anufriev To: linux-ext4@vger.kernel.org Cc: tytso@mit.edu, jack@suse.cz, dmtrmonakhov@yandex-team.ru, dotdot@yandex-team.ru Subject: [PATCH v3 2/2] ext4: print quota journalling mode on (re-)mount Date: Mon, 19 Oct 2020 12:19:22 +0300 Message-Id: <1603099162-25028-2-git-send-email-dotdot@yandex-team.ru> In-Reply-To: <1603099162-25028-1-git-send-email-dotdot@yandex-team.ru> References: <1603099162-25028-1-git-send-email-dotdot@yandex-team.ru> Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Right now, it is hard to understand what quota journalling type is enabled: you need to be quite familiar with kernel code and trace it or really understand what different combinations of fs flags/mount options lead to. This patch adds printing of current quota jounalling mode on each mount/remount, thus making it easier to check it at a glance/in autotests. The semantics is similar to ext4 data journalling modes: * journalled - quota accounting and journaling are enabled * writeback - quota accounting is enabled, but journalling is disabled * none - quota accounting is disabled * disabled - kernel compiled without CONFIG_QUOTA feature Signed-off-by: Roman Anufriev --- Changes in v3: - Fix missing semicolon Changes in v2: - Print quota journalling mode instead of exporting it via sysfs. fs/ext4/super.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index a988cf3..01815d3 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -3985,6 +3985,21 @@ static void ext4_set_resv_clusters(struct super_block *sb) atomic64_set(&sbi->s_resv_clusters, resv_clusters); } +static const char *ext4_quota_mode(struct super_block *sb) +{ +#ifdef CONFIG_QUOTA + if (!ext4_quota_capable(sb)) + return "none"; + + if (ext4_is_quota_journalled(sb)) + return "journalled"; + else + return "writeback"; +#else + return "disabled"; +#endif +} + static int ext4_fill_super(struct super_block *sb, void *data, int silent) { struct dax_device *dax_dev = fs_dax_get_by_bdev(sb->s_bdev); @@ -5039,10 +5054,11 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) if (___ratelimit(&ext4_mount_msg_ratelimit, "EXT4-fs mount")) ext4_msg(sb, KERN_INFO, "mounted filesystem with%s. " - "Opts: %.*s%s%s", descr, + "Opts: %.*s%s%s. Quota mode: %s.", descr, (int) sizeof(sbi->s_es->s_mount_opts), sbi->s_es->s_mount_opts, - *sbi->s_es->s_mount_opts ? "; " : "", orig_data); + *sbi->s_es->s_mount_opts ? "; " : "", orig_data, + ext4_quota_mode(sb)); if (es->s_error_count) mod_timer(&sbi->s_err_report, jiffies + 300*HZ); /* 5 minutes */ @@ -5979,7 +5995,8 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data) */ *flags = (*flags & ~vfs_flags) | (sb->s_flags & vfs_flags); - ext4_msg(sb, KERN_INFO, "re-mounted. Opts: %s", orig_data); + ext4_msg(sb, KERN_INFO, "re-mounted. Opts: %s. Quota mode: %s.", + orig_data, ext4_quota_mode(sb)); kfree(orig_data); return 0; -- 2.7.4