From: Jan Kara <jack@suse.cz> To: Tahsin Erdogan <tahsin@google.com> Cc: Jan Kara <jack@suse.cz>, Jan Kara <jack@suse.com>, "Theodore Ts'o" <tytso@mit.edu>, Andreas Dilger <adilger.kernel@dilger.ca>, Dave Kleikamp <shaggy@kernel.org>, Alexander Viro <viro@zeniv.linux.org.uk>, Mark Fasheh <mfasheh@versity.com>, Joel Becker <jlbec@evilplan.org>, Jens Axboe <axboe@fb.com>, Deepa Dinamani <deepa.kernel@gmail.com>, Mike Christie <mchristi@redhat.com>, Fabian Frederick <fabf@skynet.be>, linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, jfs-discussion@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, ocfs2-devel@oss.oracle.com, reiserfs-devel@vger.kernel.org Subject: Re: [PATCH 28/28] quota: add extra inode count to dquot transfer functions Date: Mon, 19 Jun 2017 11:03:29 +0200 [thread overview] Message-ID: <20170619090329.GE11837@quack2.suse.cz> (raw) In-Reply-To: <CAAeU0aNgon_ERWyUNmAGaBCuk3dU9qAxA7QnZ4D8cb5g6JZcPg@mail.gmail.com> On Fri 16-06-17 18:50:58, Tahsin Erdogan wrote: > On Thu, Jun 15, 2017 at 12:57 AM, Jan Kara <jack@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 <jack@suse.com> SUSE Labs, CR
WARNING: multiple messages have this Message-ID (diff)
From: Jan Kara <jack@suse.cz> To: Tahsin Erdogan <tahsin@google.com> Cc: Jan Kara <jack@suse.cz>, Jan Kara <jack@suse.com>, Theodore Ts'o <tytso@mit.edu>, Andreas Dilger <adilger.kernel@dilger.ca>, Dave Kleikamp <shaggy@kernel.org>, Alexander Viro <viro@zeniv.linux.org.uk>, Mark Fasheh <mfasheh@versity.com>, Joel Becker <jlbec@evilplan.org>, Jens Axboe <axboe@fb.com>, Deepa Dinamani <deepa.kernel@gmail.com>, Mike Christie <mchristi@redhat.com>, Fabian Frederick <fabf@skynet.be>, linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, jfs-discussion@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, ocfs2-devel@oss.oracle.com, reiserfs-devel@vger.kernel.org Subject: [Ocfs2-devel] [PATCH 28/28] quota: add extra inode count to dquot transfer functions Date: Mon, 19 Jun 2017 11:03:29 +0200 [thread overview] Message-ID: <20170619090329.GE11837@quack2.suse.cz> (raw) In-Reply-To: <CAAeU0aNgon_ERWyUNmAGaBCuk3dU9qAxA7QnZ4D8cb5g6JZcPg@mail.gmail.com> On Fri 16-06-17 18:50:58, Tahsin Erdogan wrote: > On Thu, Jun 15, 2017 at 12:57 AM, Jan Kara <jack@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 <jack@suse.com> SUSE Labs, CR
next prev parent reply other threads:[~2017-06-19 9:03 UTC|newest] Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-05-31 8:14 [PATCH 01/28] ext4: xattr-in-inode support Tahsin Erdogan 2017-05-31 8:14 ` [PATCH 02/28] ext4: fix lockdep warning about recursive inode locking Tahsin Erdogan 2017-05-31 8:14 ` [PATCH 03/28] ext4: lock inode before calling ext4_orphan_add() Tahsin Erdogan 2017-05-31 8:14 ` [PATCH 04/28] ext4: do not set posix acls on xattr inodes Tahsin Erdogan 2017-05-31 8:14 ` [PATCH 05/28] ext4: attach jinode after creation of xattr inode Tahsin Erdogan 2017-05-31 8:14 ` [PATCH 06/28] ext4: ea_inode owner should be the same as the inode owner Tahsin Erdogan 2017-05-31 8:14 ` [PATCH 07/28] ext4: call journal revoke when freeing ea_inode blocks Tahsin Erdogan 2017-05-31 16:12 ` Darrick J. Wong 2017-05-31 16:12 ` [Ocfs2-devel] " Darrick J. Wong 2017-05-31 16:12 ` Darrick J. Wong 2017-05-31 21:01 ` Tahsin Erdogan 2017-06-05 22:08 ` Andreas Dilger 2017-05-31 8:14 ` [PATCH 08/28] ext4: fix ref counting for ea_inode Tahsin Erdogan 2017-05-31 8:14 ` [PATCH 09/28] ext4: extended attribute value size limit is enforced by vfs Tahsin Erdogan 2017-05-31 16:03 ` Darrick J. Wong 2017-05-31 16:03 ` [Ocfs2-devel] " Darrick J. Wong 2017-05-31 16:03 ` Darrick J. Wong 2017-05-31 16:13 ` Tahsin Erdogan 2017-05-31 8:14 ` [PATCH 10/28] ext4: change ext4_xattr_inode_iget() signature Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 11/28] ext4: clean up ext4_xattr_inode_get() Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 12/28] ext4: add missing le32_to_cpu(e_value_inum) conversions Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 13/28] ext4: ext4_xattr_value_same() should return false for external data Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 14/28] ext4: fix ext4_xattr_make_inode_space() value size calculation Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 15/28] ext4: fix ext4_xattr_move_to_block() Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 16/28] ext4: fix ext4_xattr_cmp() Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 17/28] ext4: fix credits calculation for xattr inode Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 18/28] ext4: retry storing value in external inode with xattr block too Tahsin Erdogan 2017-06-20 8:56 ` [PATCH v2 18/31] " Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 19/28] ext4: ext4_xattr_delete_inode() should return accurate errors Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 20/28] ext4: improve journal credit handling in set xattr paths Tahsin Erdogan 2017-06-20 8:59 ` [PATCH v2 20/31] " Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 21/28] ext4: modify ext4_xattr_ino_array to hold struct inode * Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 22/28] ext4: move struct ext4_xattr_inode_array to xattr.h Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 23/28] mbcache: make mbcache more generic Tahsin Erdogan 2017-06-15 7:41 ` Jan Kara 2017-06-15 7:41 ` [Ocfs2-devel] " Jan Kara 2017-06-15 18:25 ` Tahsin Erdogan 2017-06-19 8:50 ` Jan Kara 2017-06-19 8:50 ` [Ocfs2-devel] " Jan Kara 2017-06-20 9:01 ` [PATCH v2 23/31] mbcache: make mbcache naming " Tahsin Erdogan 2017-06-21 17:43 ` Andreas Dilger 2017-06-21 18:33 ` Andreas Dilger 2017-06-21 21:39 ` Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 24/28] ext4: rename mb block cache functions Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 25/28] ext4: add ext4_is_quota_file() Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 26/28] ext4: cleanup transaction restarts during inode deletion Tahsin Erdogan 2017-06-14 14:17 ` [PATCH v2 " Tahsin Erdogan 2017-06-15 0:11 ` Andreas Dilger 2017-06-15 0:11 ` [Ocfs2-devel] " Andreas Dilger 2017-06-20 9:04 ` [PATCH v3 " Tahsin Erdogan 2017-06-20 9:29 ` Tahsin Erdogan 2017-05-31 8:15 ` [PATCH 27/28] ext4: xattr inode deduplication Tahsin Erdogan 2017-05-31 15:40 ` kbuild test robot 2017-05-31 15:40 ` [Ocfs2-devel] " kbuild test robot 2017-05-31 15:50 ` kbuild test robot 2017-05-31 15:50 ` [Ocfs2-devel] " kbuild test robot 2017-05-31 16:00 ` Darrick J. Wong 2017-05-31 16:00 ` [Ocfs2-devel] " Darrick J. Wong 2017-05-31 16:00 ` Darrick J. Wong 2017-05-31 22:33 ` [PATCH v2 " Tahsin Erdogan 2017-06-02 5:41 ` Darrick J. Wong 2017-06-02 5:41 ` [Ocfs2-devel] " Darrick J. Wong 2017-06-02 5:41 ` Darrick J. Wong 2017-06-02 12:46 ` Tahsin Erdogan 2017-06-02 17:59 ` Darrick J. Wong 2017-06-02 17:59 ` [Ocfs2-devel] " Darrick J. Wong 2017-06-02 17:59 ` Darrick J. Wong 2017-06-02 23:35 ` [PATCH v3 " Tahsin Erdogan 2017-06-14 14:34 ` [PATCH v4 " Tahsin Erdogan 2017-06-14 23:26 ` Andreas Dilger 2017-06-20 9:07 ` [PATCH v5 " Tahsin Erdogan 2017-06-20 9:49 ` Tahsin Erdogan 2017-06-21 17:42 ` Andreas Dilger 2017-06-21 21:14 ` Andreas Dilger 2017-06-21 21:34 ` Tahsin Erdogan 2017-06-21 21:42 ` Andreas Dilger 2017-07-04 18:39 ` Theodore Ts'o 2017-07-05 17:30 ` Tahsin Erdogan 2017-07-06 4:19 ` Theodore Ts'o 2017-05-31 8:15 ` [PATCH 28/28] quota: add extra inode count to dquot transfer functions Tahsin Erdogan 2017-06-15 7:57 ` Jan Kara 2017-06-15 7:57 ` [Ocfs2-devel] " Jan Kara 2017-06-17 1:50 ` Tahsin Erdogan 2017-06-19 9:03 ` Jan Kara [this message] 2017-06-19 9:03 ` [Ocfs2-devel] " Jan Kara 2017-06-19 11:46 ` Tahsin Erdogan 2017-06-19 12:36 ` Jan Kara 2017-06-19 12:36 ` [Ocfs2-devel] " Jan Kara 2017-06-20 9:12 ` [PATCH v2 28/31] quota: add get_inode_usage callback to transfer multi-inode charges Tahsin Erdogan 2017-06-20 12:01 ` Tahsin Erdogan 2017-06-20 15:28 ` Jan Kara 2017-06-20 18:08 ` [PATCH v3 " Tahsin Erdogan 2017-06-21 4:48 ` Theodore Ts'o 2017-06-21 11:22 ` Tahsin Erdogan 2017-06-20 9:53 ` [PATCH 28/28] quota: add extra inode count to dquot transfer functions Tahsin Erdogan 2017-05-31 16:42 ` [PATCH 01/28] ext4: xattr-in-inode support Darrick J. Wong 2017-05-31 16:42 ` [Ocfs2-devel] " Darrick J. Wong 2017-05-31 16:42 ` Darrick J. Wong 2017-05-31 19:59 ` Tahsin Erdogan 2017-06-01 15:50 ` [PATCH v2 " Tahsin Erdogan
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=20170619090329.GE11837@quack2.suse.cz \ --to=jack@suse.cz \ --cc=adilger.kernel@dilger.ca \ --cc=axboe@fb.com \ --cc=deepa.kernel@gmail.com \ --cc=fabf@skynet.be \ --cc=jack@suse.com \ --cc=jfs-discussion@lists.sourceforge.net \ --cc=jlbec@evilplan.org \ --cc=linux-ext4@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mchristi@redhat.com \ --cc=mfasheh@versity.com \ --cc=ocfs2-devel@oss.oracle.com \ --cc=reiserfs-devel@vger.kernel.org \ --cc=shaggy@kernel.org \ --cc=tahsin@google.com \ --cc=tytso@mit.edu \ --cc=viro@zeniv.linux.org.uk \ /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: linkBe 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.