From patchwork Wed Oct 11 18:02:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13417688 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8C428CDB470 for ; Wed, 11 Oct 2023 18:02:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232010AbjJKSCJ (ORCPT ); Wed, 11 Oct 2023 14:02:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50178 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232891AbjJKSCH (ORCPT ); Wed, 11 Oct 2023 14:02:07 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8D86994 for ; Wed, 11 Oct 2023 11:02:04 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2BD51C433C8; Wed, 11 Oct 2023 18:02:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1697047324; bh=VsdlCD6Q+pBjdkqPxpa9hcz7LwpAn5tB5s4I410ZRBE=; h=Date:Subject:From:To:Cc:In-Reply-To:References:From; b=Lgtk7+ofI2bXdZdXxRUUKo3lJrK1uaMIHptXMmOpjj0SRWFtgLEYtXk4LoBnM+bbX PZuxthhlNBm9KGIxHoLGxIXow3Sh86uVP7HFYjE/4dogkO/q2na6aNlA6SETXk+s+P uiurIjYEsFwDB+hH/+QWcXLbJbTgVyLDZ2XI/l/DVLHtujw1A7ap0LKAcsdjXk0W3t MI1HvG+1flGxw0sxrkdAU6VMtWd4tyaWK0KpGmHGGOOSVvwHQNrBEokoySyrcYxcCV 4U6IpAOiV0wBiCW9RWp7Wzm9d98IRLVFUHA4c8eXia3fwcuVXHXu533oeqibxZV/KJ e71sUJ4ajE5/g== Date: Wed, 11 Oct 2023 11:02:03 -0700 Subject: [PATCH 1/3] xfs: bump max fsgeom struct version From: "Darrick J. Wong" To: djwong@kernel.org Cc: linux-xfs@vger.kernel.org, osandov@osandov.com, hch@lst.de Message-ID: <169704720351.1773263.12324560217170051519.stgit@frogsfrogsfrogs> In-Reply-To: <169704720334.1773263.7733376994081793895.stgit@frogsfrogsfrogs> References: <169704720334.1773263.7733376994081793895.stgit@frogsfrogsfrogs> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org From: Darrick J. Wong The latest version of the fs geometry structure is v5. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig --- fs/xfs/libxfs/xfs_sb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/xfs/libxfs/xfs_sb.h b/fs/xfs/libxfs/xfs_sb.h index a5e14740ec9ac..19134b23c10be 100644 --- a/fs/xfs/libxfs/xfs_sb.h +++ b/fs/xfs/libxfs/xfs_sb.h @@ -25,7 +25,7 @@ extern uint64_t xfs_sb_version_to_features(struct xfs_sb *sbp); extern int xfs_update_secondary_sbs(struct xfs_mount *mp); -#define XFS_FS_GEOM_MAX_STRUCT_VER (4) +#define XFS_FS_GEOM_MAX_STRUCT_VER (5) extern void xfs_fs_geometry(struct xfs_mount *mp, struct xfs_fsop_geom *geo, int struct_version); extern int xfs_sb_read_secondary(struct xfs_mount *mp, From patchwork Wed Oct 11 18:02:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13417689 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59B85CDB473 for ; Wed, 11 Oct 2023 18:02:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234771AbjJKSCX (ORCPT ); Wed, 11 Oct 2023 14:02:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232891AbjJKSCW (ORCPT ); Wed, 11 Oct 2023 14:02:22 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40F1B9D for ; Wed, 11 Oct 2023 11:02:20 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D0D5BC433C8; Wed, 11 Oct 2023 18:02:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1697047339; bh=nU0hBWSsI2Ua5pET77rDKFcJ8D3pXowLO52jJs6T0r8=; h=Date:Subject:From:To:Cc:In-Reply-To:References:From; b=dzbplzt0fE3uUo04JoVzTfnKh/7MLdX7o23BlOGNaWfmiSeuEGdvwiLoj0v16ONmK e3IL6EZ3GPeRhkQM0fodhikxC+WlyyviYU0L1H6F1Iq+LE7C7an2cfPog7GFD7jhQz VNsiwotpDPHlk1uLOEnung57Stx3lJzoM2QYHYfMrO8JKrDQLHIWYOEG7EuRNKwIfd Y/qRiMxrLGyxhNQgDnD4ywXzMrujh85wE2+DyQqvDqm5q9kWI2+zEYN02kgOklr3nk UCTh5ywTa/AD0x+bIn30J2w5vgdWGRYAEa9x94RNsXraXO6P4EWzALqBELEdIrYQjN Dj1VlvtWIbQDw== Date: Wed, 11 Oct 2023 11:02:19 -0700 Subject: [PATCH 2/3] xfs: prevent rt growfs when quota is enabled From: "Darrick J. Wong" To: djwong@kernel.org Cc: linux-xfs@vger.kernel.org, osandov@osandov.com, hch@lst.de Message-ID: <169704720365.1773263.12533098463437598674.stgit@frogsfrogsfrogs> In-Reply-To: <169704720334.1773263.7733376994081793895.stgit@frogsfrogsfrogs> References: <169704720334.1773263.7733376994081793895.stgit@frogsfrogsfrogs> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org From: Darrick J. Wong Quotas aren't (yet) supported with realtime, so we shouldn't allow userspace to set up a realtime section when quotas are enabled, even if they attached one via mount options. IOWS, you shouldn't be able to do: # mkfs.xfs -f /dev/sda # mount /dev/sda /mnt -o rtdev=/dev/sdb # xfs_growfs -r /mnt Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig --- fs/xfs/xfs_rtalloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index dbc81ea0f4ff6..5429a019159a6 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -959,7 +959,7 @@ xfs_growfs_rt( return -EINVAL; /* Unsupported realtime features. */ - if (xfs_has_rmapbt(mp) || xfs_has_reflink(mp)) + if (xfs_has_rmapbt(mp) || xfs_has_reflink(mp) || xfs_has_quota(mp)) return -EOPNOTSUPP; nrblocks = in->newblocks; From patchwork Wed Oct 11 18:02:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 13417690 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 25118CDB474 for ; Wed, 11 Oct 2023 18:02:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232218AbjJKSCl (ORCPT ); Wed, 11 Oct 2023 14:02:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42440 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234859AbjJKSCi (ORCPT ); Wed, 11 Oct 2023 14:02:38 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB9E5A4 for ; Wed, 11 Oct 2023 11:02:35 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 78050C433C8; Wed, 11 Oct 2023 18:02:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1697047355; bh=bQEmRifAo2XP2EPeShv2XrUJ0gcslBHS8QgKX6GWsMw=; h=Date:Subject:From:To:Cc:In-Reply-To:References:From; b=B36d+mwENLc6G4CcG9Bc0x1N1S3fxDUgR2jHmdk2cU5w04l4IWNqgQjc0XmGIW85k v+oWHDo0Frk8tiJO9njmllZuZY18czgWcNSqfwUN/y3MpPw+Y1IkCIxIpA8GHlcWl1 u0Dmj7O2r2broERVRBUMChR6QNdYRu33wNZev8M7oUiJquTzzw3nfXwpPHSW3f+hTe i0my/xOZFJc/Ujezr7HoIC3xx55iFHUAsN7pUkBJSpNnghm+rJ9uP7FU0tffDOJisN PryAs122UHK2Pdoz9JxQKXeKxSBbTSmJ3vkoELeSV9rZYv9Q8o2pmgpKj2HivXDe1X xHCPH7gck+N7g== Date: Wed, 11 Oct 2023 11:02:35 -0700 Subject: [PATCH 3/3] xfs: rt stubs should return negative errnos when rt disabled From: "Darrick J. Wong" To: djwong@kernel.org Cc: linux-xfs@vger.kernel.org, osandov@osandov.com, hch@lst.de Message-ID: <169704720379.1773263.4032428007620392316.stgit@frogsfrogsfrogs> In-Reply-To: <169704720334.1773263.7733376994081793895.stgit@frogsfrogsfrogs> References: <169704720334.1773263.7733376994081793895.stgit@frogsfrogsfrogs> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org From: Darrick J. Wong When realtime support is not compiled into the kernel, these functions should return negative errnos, not positive errnos. While we're at it, fix a broken macro declaration. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig --- fs/xfs/xfs_rtalloc.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/fs/xfs/xfs_rtalloc.h b/fs/xfs/xfs_rtalloc.h index e440f793dd98f..e53bc52d81fd6 100644 --- a/fs/xfs/xfs_rtalloc.h +++ b/fs/xfs/xfs_rtalloc.h @@ -143,17 +143,17 @@ int xfs_rtalloc_reinit_frextents(struct xfs_mount *mp); int xfs_rtfile_convert_unwritten(struct xfs_inode *ip, loff_t pos, uint64_t len); #else -# define xfs_rtallocate_extent(t,b,min,max,l,f,p,rb) (ENOSYS) -# define xfs_rtfree_extent(t,b,l) (ENOSYS) -# define xfs_rtfree_blocks(t,rb,rl) (ENOSYS) -# define xfs_rtpick_extent(m,t,l,rb) (ENOSYS) -# define xfs_growfs_rt(mp,in) (ENOSYS) -# define xfs_rtalloc_query_range(t,l,h,f,p) (ENOSYS) -# define xfs_rtalloc_query_all(m,t,f,p) (ENOSYS) -# define xfs_rtbuf_get(m,t,b,i,p) (ENOSYS) -# define xfs_verify_rtbno(m, r) (false) -# define xfs_rtalloc_extent_is_free(m,t,s,l,i) (ENOSYS) -# define xfs_rtalloc_reinit_frextents(m) (0) +# define xfs_rtallocate_extent(t,b,min,max,l,f,p,rb) (-ENOSYS) +# define xfs_rtfree_extent(t,b,l) (-ENOSYS) +# define xfs_rtfree_blocks(t,rb,rl) (-ENOSYS) +# define xfs_rtpick_extent(m,t,l,rb) (-ENOSYS) +# define xfs_growfs_rt(mp,in) (-ENOSYS) +# define xfs_rtalloc_query_range(m,t,l,h,f,p) (-ENOSYS) +# define xfs_rtalloc_query_all(m,t,f,p) (-ENOSYS) +# define xfs_rtbuf_get(m,t,b,i,p) (-ENOSYS) +# define xfs_verify_rtbno(m, r) (false) +# define xfs_rtalloc_extent_is_free(m,t,s,l,i) (-ENOSYS) +# define xfs_rtalloc_reinit_frextents(m) (0) static inline int /* error */ xfs_rtmount_init( xfs_mount_t *mp) /* file system mount structure */ @@ -164,7 +164,7 @@ xfs_rtmount_init( xfs_warn(mp, "Not built with CONFIG_XFS_RT"); return -ENOSYS; } -# define xfs_rtmount_inodes(m) (((mp)->m_sb.sb_rblocks == 0)? 0 : (ENOSYS)) +# define xfs_rtmount_inodes(m) (((mp)->m_sb.sb_rblocks == 0)? 0 : (-ENOSYS)) # define xfs_rtunmount_inodes(m) # define xfs_rtfile_convert_unwritten(ip, pos, len) (0) #endif /* CONFIG_XFS_RT */