All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kari Argillander <kari.argillander@gmail.com>
To: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Cc: ntfs3@lists.linux.dev, linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 3/3] fs/ntfs3: Refactoring of ntfs_init_from_boot
Date: Mon, 27 Sep 2021 21:52:31 +0300	[thread overview]
Message-ID: <20210927185231.mbtzua6zgknktavu@kari-VirtualBox> (raw)
In-Reply-To: <aa2b5ad6-dd9e-3feb-d3bd-248cb311d050@paragon-software.com>

On Mon, Sep 27, 2021 at 06:48:38PM +0300, Konstantin Komarov wrote:
> Remove ntfs_sb_info members sector_size and sector_bits.
> Print details why mount failed.
> 
> Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>

Like the changes. Some thing below.

Reviewed-by: Kari Argillander <kari.argillander@gmail.com>

> ---
>  fs/ntfs3/ntfs_fs.h |  2 --
>  fs/ntfs3/super.c   | 32 +++++++++++++++++++-------------
>  2 files changed, 19 insertions(+), 15 deletions(-)
> 
> diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h
> index 6731b5d9e2d8..38b7c1a9dc52 100644
> --- a/fs/ntfs3/ntfs_fs.h
> +++ b/fs/ntfs3/ntfs_fs.h
> @@ -211,10 +211,8 @@ struct ntfs_sb_info {
>  	u32 blocks_per_cluster; // cluster_size / sb->s_blocksize
>  
>  	u32 record_size;
> -	u32 sector_size;
>  	u32 index_size;
>  
> -	u8 sector_bits;
>  	u8 cluster_bits;
>  	u8 record_bits;
>  
> diff --git a/fs/ntfs3/super.c b/fs/ntfs3/super.c
> index 193f9a98f6ab..5fe9484c6781 100644
> --- a/fs/ntfs3/super.c
> +++ b/fs/ntfs3/super.c
> @@ -682,7 +682,7 @@ static int ntfs_init_from_boot(struct super_block *sb, u32 sector_size,
>  	struct ntfs_sb_info *sbi = sb->s_fs_info;
>  	int err;
>  	u32 mb, gb, boot_sector_size, sct_per_clst, record_size;
> -	u64 sectors, clusters, fs_size, mlcn, mlcn2;
> +	u64 sectors, clusters, mlcn, mlcn2;
>  	struct NTFS_BOOT *boot;
>  	struct buffer_head *bh;
>  	struct MFT_REC *rec;
> @@ -740,20 +740,20 @@ static int ntfs_init_from_boot(struct super_block *sb, u32 sector_size,
>  		goto out;
>  	}
>  
> -	sbi->sector_size = boot_sector_size;
> -	sbi->sector_bits = blksize_bits(boot_sector_size);
> -	fs_size = (sectors + 1) << sbi->sector_bits;
> +	sbi->volume.size = sectors * boot_sector_size;
>  
> -	gb = format_size_gb(fs_size, &mb);
> +	gb = format_size_gb(sbi->volume.size + boot_sector_size, &mb);
>  
>  	/*
>  	 * - Volume formatted and mounted with the same sector size.
>  	 * - Volume formatted 4K and mounted as 512.
>  	 * - Volume formatted 512 and mounted as 4K.
>  	 */
> -	if (sbi->sector_size != sector_size) {
> -		ntfs_warn(sb,
> -			  "Different NTFS' sector size and media sector size");
> +	if (boot_sector_size != sector_size) {
> +		ntfs_warn(
> +			sb,
> +			"Different NTFS' sector size (%u) and media sector size (%u)",
> +			boot_sector_size, sector_size);

>  		dev_size += sector_size - 1;
>  	}
>  
> @@ -764,12 +764,19 @@ static int ntfs_init_from_boot(struct super_block *sb, u32 sector_size,
>  	sbi->mft.lbo2 = mlcn2 << sbi->cluster_bits;
>  
>  	/* Compare boot's cluster and sector. */
> -	if (sbi->cluster_size < sbi->sector_size)
> +	if (sbi->cluster_size < boot_sector_size)
>  		goto out;
>  
>  	/* Compare boot's cluster and media sector. */
> -	if (sbi->cluster_size < sector_size)
> -		goto out; /* No way to use ntfs_get_block in this case. */
> +	if (sbi->cluster_size < sector_size) {
> +		/* No way to use ntfs_get_block in this case. */
> +		ntfs_err(
> +			sb,
> +			"Failed to mount 'cause NTFS's cluster size (%u) is "
> +			"less than media sector size (%u)",

This is first time I see splitted string like this in ntfs3. No need to
split like this. Small nit for that this chunk should already could be
in patch 2/3.

> +			sbi->cluster_size, sector_size);
> +		goto out;
> +	}
>  
>  	sbi->cluster_mask = sbi->cluster_size - 1;
>  	sbi->cluster_mask_inv = ~(u64)sbi->cluster_mask;
> @@ -794,10 +801,9 @@ static int ntfs_init_from_boot(struct super_block *sb, u32 sector_size,
>  				  : (u32)boot->index_size << sbi->cluster_bits;
>  
>  	sbi->volume.ser_num = le64_to_cpu(boot->serial_num);
> -	sbi->volume.size = sectors << sbi->sector_bits;
>  
>  	/* Warning if RAW volume. */
> -	if (dev_size < fs_size) {
> +	if (dev_size < sbi->volume.size + boot_sector_size) {
>  		u32 mb0, gb0;
>  
>  		gb0 = format_size_gb(dev_size, &mb0);
> -- 
> 2.33.0
> 
> 

      reply	other threads:[~2021-09-27 18:52 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-27 15:46 [PATCH 0/3] fs/ntfs3: Refactoring of super.c Konstantin Komarov
2021-09-27 15:47 ` [PATCH 1/3] fs/ntfs3: Fix memory leak if fill_super failed Konstantin Komarov
2021-09-27 18:40   ` Kari Argillander
2021-10-01  3:56   ` kernel test robot
2021-10-01  3:56     ` kernel test robot
2021-11-05 23:48   ` kernel test robot
2021-11-05 23:48     ` kernel test robot
2021-09-27 15:48 ` [PATCH 2/3] fs/ntfs3: Reject mount if boot's cluster size < media sector size Konstantin Komarov
2021-09-27 18:56   ` Kari Argillander
2021-09-28 17:21     ` Konstantin Komarov
2021-09-28 17:58       ` Kari Argillander
2021-09-27 15:48 ` [PATCH 3/3] fs/ntfs3: Refactoring of ntfs_init_from_boot Konstantin Komarov
2021-09-27 18:52   ` Kari Argillander [this message]

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=20210927185231.mbtzua6zgknktavu@kari-VirtualBox \
    --to=kari.argillander@gmail.com \
    --cc=almaz.alexandrovich@paragon-software.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ntfs3@lists.linux.dev \
    /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.