From: Yury Norov <yury.norov@gmail.com>
To: Alexander Lobakin <aleksander.lobakin@intel.com>
Cc: linux-s390@vger.kernel.org, ntfs3@lists.linux.dev,
Przemek Kitszel <przemyslaw.kitszel@intel.com>,
David Ahern <dsahern@kernel.org>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
dm-devel@redhat.com, linux-kernel@vger.kernel.org,
Eric Dumazet <edumazet@google.com>,
netdev@vger.kernel.org, Alexander Potapenko <glider@google.com>,
Simon Horman <simon.horman@corigine.com>,
Jakub Kicinski <kuba@kernel.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
linux-btrfs@vger.kernel.org
Subject: Re: [dm-devel] [PATCH 06/14] fs/ntfs3: rename bitmap_size() -> ntfs3_bitmap_size()
Date: Mon, 9 Oct 2023 09:50:15 -0700 [thread overview]
Message-ID: <ZSQvR+bQ8PS9/CEa@yury-ThinkPad> (raw)
In-Reply-To: <20231009151026.66145-7-aleksander.lobakin@intel.com>
On Mon, Oct 09, 2023 at 05:10:18PM +0200, Alexander Lobakin wrote:
> bitmap_size() is a pretty generic name and one may want to use it for
> a generic bitmap API function. At the same time, its logic is
> NTFS-specific, as it aligns to the sizeof(u64), not the sizeof(long)
> (although it uses ideologically right ALIGN() instead of division).
> Add the prefix 'ntfs3_' used for that FS (not just 'ntfs_' to not mix
> it with the legacy module).
>
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com>
> ---
> fs/ntfs3/bitmap.c | 4 ++--
> fs/ntfs3/fsntfs.c | 2 +-
> fs/ntfs3/index.c | 11 ++++++-----
> fs/ntfs3/ntfs_fs.h | 2 +-
> fs/ntfs3/super.c | 2 +-
> 5 files changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/fs/ntfs3/bitmap.c b/fs/ntfs3/bitmap.c
> index 107e808e06ea..a2e18f13e93a 100644
> --- a/fs/ntfs3/bitmap.c
> +++ b/fs/ntfs3/bitmap.c
> @@ -653,7 +653,7 @@ int wnd_init(struct wnd_bitmap *wnd, struct super_block *sb, size_t nbits)
> wnd->total_zeroes = nbits;
> wnd->extent_max = MINUS_ONE_T;
> wnd->zone_bit = wnd->zone_end = 0;
> - wnd->nwnd = bytes_to_block(sb, bitmap_size(nbits));
> + wnd->nwnd = bytes_to_block(sb, ntfs3_bitmap_size(nbits));
> wnd->bits_last = nbits & (wbits - 1);
> if (!wnd->bits_last)
> wnd->bits_last = wbits;
> @@ -1345,7 +1345,7 @@ int wnd_extend(struct wnd_bitmap *wnd, size_t new_bits)
> return -EINVAL;
>
> /* Align to 8 byte boundary. */
> - new_wnd = bytes_to_block(sb, bitmap_size(new_bits));
> + new_wnd = bytes_to_block(sb, ntfs3_bitmap_size(new_bits));
> new_last = new_bits & (wbits - 1);
> if (!new_last)
> new_last = wbits;
> diff --git a/fs/ntfs3/fsntfs.c b/fs/ntfs3/fsntfs.c
> index 33afee0f5559..7a14d2347f27 100644
> --- a/fs/ntfs3/fsntfs.c
> +++ b/fs/ntfs3/fsntfs.c
> @@ -522,7 +522,7 @@ static int ntfs_extend_mft(struct ntfs_sb_info *sbi)
> ni->mi.dirty = true;
>
> /* Step 2: Resize $MFT::BITMAP. */
> - new_bitmap_bytes = bitmap_size(new_mft_total);
> + new_bitmap_bytes = ntfs3_bitmap_size(new_mft_total);
>
> err = attr_set_size(ni, ATTR_BITMAP, NULL, 0, &sbi->mft.bitmap.run,
> new_bitmap_bytes, &new_bitmap_bytes, true, NULL);
> diff --git a/fs/ntfs3/index.c b/fs/ntfs3/index.c
> index 124c6e822623..ab53a4b6ddf8 100644
> --- a/fs/ntfs3/index.c
> +++ b/fs/ntfs3/index.c
> @@ -1453,8 +1453,8 @@ static int indx_create_allocate(struct ntfs_index *indx, struct ntfs_inode *ni,
>
> alloc->nres.valid_size = alloc->nres.data_size = cpu_to_le64(data_size);
>
> - err = ni_insert_resident(ni, bitmap_size(1), ATTR_BITMAP, in->name,
> - in->name_len, &bitmap, NULL, NULL);
> + err = ni_insert_resident(ni, ntfs3_bitmap_size(1), ATTR_BITMAP,
> + in->name, in->name_len, &bitmap, NULL, NULL);
> if (err)
> goto out2;
>
> @@ -1515,8 +1515,9 @@ static int indx_add_allocate(struct ntfs_index *indx, struct ntfs_inode *ni,
> if (bmp) {
> /* Increase bitmap. */
> err = attr_set_size(ni, ATTR_BITMAP, in->name, in->name_len,
> - &indx->bitmap_run, bitmap_size(bit + 1),
> - NULL, true, NULL);
> + &indx->bitmap_run,
> + ntfs3_bitmap_size(bit + 1), NULL, true,
> + NULL);
> if (err)
> goto out1;
> }
> @@ -2089,7 +2090,7 @@ static int indx_shrink(struct ntfs_index *indx, struct ntfs_inode *ni,
> if (in->name == I30_NAME)
> ni->vfs_inode.i_size = new_data;
>
> - bpb = bitmap_size(bit);
> + bpb = ntfs3_bitmap_size(bit);
> if (bpb * 8 == nbits)
> return 0;
>
> diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h
> index 629403ede6e5..93333156aac6 100644
> --- a/fs/ntfs3/ntfs_fs.h
> +++ b/fs/ntfs3/ntfs_fs.h
> @@ -961,7 +961,7 @@ static inline bool run_is_empty(struct runs_tree *run)
> }
>
> /* NTFS uses quad aligned bitmaps. */
> -static inline size_t bitmap_size(size_t bits)
> +static inline size_t ntfs3_bitmap_size(size_t bits)
> {
> return ALIGN((bits + 7) >> 3, 8);
> }
This looks like duplicating BITS_TO_U64(). If so, why not just switch
to using the macro while you're here?
> diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
> index cfec5e0c7f66..b1fb6efe7084 100644
> --- a/fs/ntfs3/super.c
> +++ b/fs/ntfs3/super.c
> @@ -1285,7 +1285,7 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
>
> /* Check bitmap boundary. */
> tt = sbi->used.bitmap.nbits;
> - if (inode->i_size < bitmap_size(tt)) {
> + if (inode->i_size < ntfs3_bitmap_size(tt)) {
> ntfs_err(sb, "$Bitmap is corrupted.");
> err = -EINVAL;
> goto put_inode_out;
> --
> 2.41.0
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
WARNING: multiple messages have this Message-ID (diff)
From: Yury Norov <yury.norov@gmail.com>
To: Alexander Lobakin <aleksander.lobakin@intel.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Alexander Potapenko <glider@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Eric Dumazet <edumazet@google.com>,
David Ahern <dsahern@kernel.org>,
Przemek Kitszel <przemyslaw.kitszel@intel.com>,
Simon Horman <simon.horman@corigine.com>,
netdev@vger.kernel.org, linux-btrfs@vger.kernel.org,
dm-devel@redhat.com, ntfs3@lists.linux.dev,
linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 06/14] fs/ntfs3: rename bitmap_size() -> ntfs3_bitmap_size()
Date: Mon, 9 Oct 2023 09:50:15 -0700 [thread overview]
Message-ID: <ZSQvR+bQ8PS9/CEa@yury-ThinkPad> (raw)
In-Reply-To: <20231009151026.66145-7-aleksander.lobakin@intel.com>
On Mon, Oct 09, 2023 at 05:10:18PM +0200, Alexander Lobakin wrote:
> bitmap_size() is a pretty generic name and one may want to use it for
> a generic bitmap API function. At the same time, its logic is
> NTFS-specific, as it aligns to the sizeof(u64), not the sizeof(long)
> (although it uses ideologically right ALIGN() instead of division).
> Add the prefix 'ntfs3_' used for that FS (not just 'ntfs_' to not mix
> it with the legacy module).
>
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com>
> ---
> fs/ntfs3/bitmap.c | 4 ++--
> fs/ntfs3/fsntfs.c | 2 +-
> fs/ntfs3/index.c | 11 ++++++-----
> fs/ntfs3/ntfs_fs.h | 2 +-
> fs/ntfs3/super.c | 2 +-
> 5 files changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/fs/ntfs3/bitmap.c b/fs/ntfs3/bitmap.c
> index 107e808e06ea..a2e18f13e93a 100644
> --- a/fs/ntfs3/bitmap.c
> +++ b/fs/ntfs3/bitmap.c
> @@ -653,7 +653,7 @@ int wnd_init(struct wnd_bitmap *wnd, struct super_block *sb, size_t nbits)
> wnd->total_zeroes = nbits;
> wnd->extent_max = MINUS_ONE_T;
> wnd->zone_bit = wnd->zone_end = 0;
> - wnd->nwnd = bytes_to_block(sb, bitmap_size(nbits));
> + wnd->nwnd = bytes_to_block(sb, ntfs3_bitmap_size(nbits));
> wnd->bits_last = nbits & (wbits - 1);
> if (!wnd->bits_last)
> wnd->bits_last = wbits;
> @@ -1345,7 +1345,7 @@ int wnd_extend(struct wnd_bitmap *wnd, size_t new_bits)
> return -EINVAL;
>
> /* Align to 8 byte boundary. */
> - new_wnd = bytes_to_block(sb, bitmap_size(new_bits));
> + new_wnd = bytes_to_block(sb, ntfs3_bitmap_size(new_bits));
> new_last = new_bits & (wbits - 1);
> if (!new_last)
> new_last = wbits;
> diff --git a/fs/ntfs3/fsntfs.c b/fs/ntfs3/fsntfs.c
> index 33afee0f5559..7a14d2347f27 100644
> --- a/fs/ntfs3/fsntfs.c
> +++ b/fs/ntfs3/fsntfs.c
> @@ -522,7 +522,7 @@ static int ntfs_extend_mft(struct ntfs_sb_info *sbi)
> ni->mi.dirty = true;
>
> /* Step 2: Resize $MFT::BITMAP. */
> - new_bitmap_bytes = bitmap_size(new_mft_total);
> + new_bitmap_bytes = ntfs3_bitmap_size(new_mft_total);
>
> err = attr_set_size(ni, ATTR_BITMAP, NULL, 0, &sbi->mft.bitmap.run,
> new_bitmap_bytes, &new_bitmap_bytes, true, NULL);
> diff --git a/fs/ntfs3/index.c b/fs/ntfs3/index.c
> index 124c6e822623..ab53a4b6ddf8 100644
> --- a/fs/ntfs3/index.c
> +++ b/fs/ntfs3/index.c
> @@ -1453,8 +1453,8 @@ static int indx_create_allocate(struct ntfs_index *indx, struct ntfs_inode *ni,
>
> alloc->nres.valid_size = alloc->nres.data_size = cpu_to_le64(data_size);
>
> - err = ni_insert_resident(ni, bitmap_size(1), ATTR_BITMAP, in->name,
> - in->name_len, &bitmap, NULL, NULL);
> + err = ni_insert_resident(ni, ntfs3_bitmap_size(1), ATTR_BITMAP,
> + in->name, in->name_len, &bitmap, NULL, NULL);
> if (err)
> goto out2;
>
> @@ -1515,8 +1515,9 @@ static int indx_add_allocate(struct ntfs_index *indx, struct ntfs_inode *ni,
> if (bmp) {
> /* Increase bitmap. */
> err = attr_set_size(ni, ATTR_BITMAP, in->name, in->name_len,
> - &indx->bitmap_run, bitmap_size(bit + 1),
> - NULL, true, NULL);
> + &indx->bitmap_run,
> + ntfs3_bitmap_size(bit + 1), NULL, true,
> + NULL);
> if (err)
> goto out1;
> }
> @@ -2089,7 +2090,7 @@ static int indx_shrink(struct ntfs_index *indx, struct ntfs_inode *ni,
> if (in->name == I30_NAME)
> ni->vfs_inode.i_size = new_data;
>
> - bpb = bitmap_size(bit);
> + bpb = ntfs3_bitmap_size(bit);
> if (bpb * 8 == nbits)
> return 0;
>
> diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h
> index 629403ede6e5..93333156aac6 100644
> --- a/fs/ntfs3/ntfs_fs.h
> +++ b/fs/ntfs3/ntfs_fs.h
> @@ -961,7 +961,7 @@ static inline bool run_is_empty(struct runs_tree *run)
> }
>
> /* NTFS uses quad aligned bitmaps. */
> -static inline size_t bitmap_size(size_t bits)
> +static inline size_t ntfs3_bitmap_size(size_t bits)
> {
> return ALIGN((bits + 7) >> 3, 8);
> }
This looks like duplicating BITS_TO_U64(). If so, why not just switch
to using the macro while you're here?
> diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
> index cfec5e0c7f66..b1fb6efe7084 100644
> --- a/fs/ntfs3/super.c
> +++ b/fs/ntfs3/super.c
> @@ -1285,7 +1285,7 @@ static int ntfs_fill_super(struct super_block *sb, struct fs_context *fc)
>
> /* Check bitmap boundary. */
> tt = sbi->used.bitmap.nbits;
> - if (inode->i_size < bitmap_size(tt)) {
> + if (inode->i_size < ntfs3_bitmap_size(tt)) {
> ntfs_err(sb, "$Bitmap is corrupted.");
> err = -EINVAL;
> goto put_inode_out;
> --
> 2.41.0
next prev parent reply other threads:[~2023-10-10 7:03 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-09 15:10 [dm-devel] [PATCH 00/14] ip_tunnel: convert __be16 tunnel flags to bitmaps Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 01/14] bitops: add missing prototype check Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 02/14] bitops: make BYTES_TO_BITS() treewide-available Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 03/14] bitops: let the compiler optimize __assign_bit() Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 16:18 ` [dm-devel] " Yury Norov
2023-10-09 16:18 ` Yury Norov
2023-10-11 7:25 ` Alexander Lobakin
2023-10-11 7:25 ` Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 04/14] linkmode: convert linkmode_{test, set, clear, mod}_bit() to macros Alexander Lobakin
2023-10-09 15:10 ` [PATCH 04/14] linkmode: convert linkmode_{test,set,clear,mod}_bit() " Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 05/14] s390/cio: rename bitmap_size() -> idset_bitmap_size() Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 16:35 ` [dm-devel] " Yury Norov
2023-10-09 16:35 ` Yury Norov
2023-10-11 7:28 ` Alexander Lobakin
2023-10-11 7:28 ` Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 06/14] fs/ntfs3: rename bitmap_size() -> ntfs3_bitmap_size() Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 16:50 ` Yury Norov [this message]
2023-10-09 16:50 ` Yury Norov
2023-10-11 7:36 ` Alexander Lobakin
2023-10-11 7:36 ` Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 07/14] btrfs: rename bitmap_set_bits() -> btrfs_bitmap_set_bits() Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 15:23 ` [dm-devel] " David Sterba
2023-10-09 15:23 ` David Sterba
2023-10-09 15:10 ` [dm-devel] [PATCH 08/14] bitmap: introduce generic optimized bitmap_size() Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 17:04 ` [dm-devel] " Yury Norov
2023-10-09 17:04 ` Yury Norov
2023-10-09 15:10 ` [dm-devel] [PATCH 09/14] bitmap: extend bitmap_{get, set}_value8() to bitmap_{get, set}_bits() Alexander Lobakin
2023-10-09 15:10 ` [PATCH 09/14] bitmap: extend bitmap_{get,set}_value8() to bitmap_{get,set}_bits() Alexander Lobakin
2023-10-09 16:31 ` [dm-devel] [PATCH 09/14] bitmap: extend bitmap_{get, set}_value8() to bitmap_{get, set}_bits() Yury Norov
2023-10-09 16:31 ` [PATCH 09/14] bitmap: extend bitmap_{get,set}_value8() to bitmap_{get,set}_bits() Yury Norov
2023-10-11 9:33 ` Alexander Lobakin
2023-10-11 9:33 ` Alexander Lobakin
2023-10-11 10:36 ` Andy Shevchenko
2023-10-11 10:36 ` Andy Shevchenko
2023-10-15 2:20 ` Yury Norov
2023-10-15 2:20 ` Yury Norov
2023-10-09 15:10 ` [dm-devel] [PATCH 10/14] ip_tunnel: use a separate struct to store tunnel params in the kernel Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 11/14] ip_tunnel: convert __be16 tunnel flags to bitmaps Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 12/14] lib/bitmap: add compile-time test for __assign_bit() optimization Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 13/14] lib/bitmap: add tests for bitmap_{get, set}_bits() Alexander Lobakin
2023-10-09 15:10 ` [PATCH 13/14] lib/bitmap: add tests for bitmap_{get,set}_bits() Alexander Lobakin
2023-10-09 15:10 ` [dm-devel] [PATCH 14/14] lib/bitmap: add tests for IP tunnel flags conversion helpers Alexander Lobakin
2023-10-09 15:10 ` Alexander Lobakin
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=ZSQvR+bQ8PS9/CEa@yury-ThinkPad \
--to=yury.norov@gmail.com \
--cc=aleksander.lobakin@intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=dm-devel@redhat.com \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=glider@google.com \
--cc=kuba@kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=netdev@vger.kernel.org \
--cc=ntfs3@lists.linux.dev \
--cc=przemyslaw.kitszel@intel.com \
--cc=simon.horman@corigine.com \
/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.