From: Conrad Meyer <cemeyer@uw.edu>
To: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4] fs: FAT: Add support for DOS 1.x formatted volumes
Date: Sun, 13 Apr 2014 08:35:43 -0400 [thread overview]
Message-ID: <20140413083543.2436eee0@m> (raw)
In-Reply-To: <87zjjpvq2x.fsf@devron.myhome.or.jp>
On Sun, 13 Apr 2014 12:57:42 +0900
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> wrote:
> Conrad Meyer <cemeyer@uw.edu> writes:
>
> Hi,
>
> Sorry for late reply.
>
> > +
> > + bd_sects =
> > part_nr_sects_read(sb->s_bdev->bd_part);
>
> This would be better to use
> i_read_size(&sb->s_bdev->bd_inode->i_size)
Ok, easy to fix.
>
> > + if (!fat_bpb_is_zero(b)) {
> > + fat_msg(sb, KERN_ERR, "%s; DOS
> > 2.x BPB is non-zero",
> > + notdos1x);
> > + brelse(bh);
> > + goto out_invalid;
> > + }
>
> Please don't message if silent. While auto detection, user
> don't want to see message from kernel.
Okay, fixed.
>
> > + if (sbi->options.dos1xfloppy) {
> > + /* 16-bit DOS 1.x reliably wrote
> > bootstrap short-jmp code */
> > + if (b->ignored[0] != 0xeb ||
> > b->ignored[2] != 0x90) {
> > + fat_msg(sb, KERN_ERR, "%s; no
> > bootstrapping code",
> > + notdos1x);
> > + brelse(bh);
> > + goto out_invalid;
> > + }
>
> [...]
>
> Looks like I was not explain my suggestion correctly. I was
> intended to allow dos1xfloppy by option, not allow
> dos1xfloppy only.
>
> I.e.
>
> err = read-from-bpb();
> if (err == -ENOTFATFS)
> if (dos1xfloppy)
> err = read-from-static-bpb();
> if (err)
> goto error;
>
> > + if (sbi->options.dos1xfloppy)
> > + total_sectors = fdefaults->nr_sectors;
> > + else
> > + total_sectors =
> > get_unaligned_le16(&b->sectors); if (total_sectors == 0)
> > total_sectors =
> > le32_to_cpu(b->total_sect);
>
> Can we make 2 helpers to read from BPB and static BPB? If
> possible, we would not be bothered by if (dos1xfloppy),
> like above crappy pseudo.
>
> Thanks.
We would have to duplicate, replace, or skip large parts of
fat_fill_super(). This is why my initial approach was to just
fill in BPB values in the SB copy in memory. We read from BPB
over the course of 215 lines of code, ending here:
> @@ -1527,7 +1659,10 @@ int fat_fill_super(struct
> super_block *sb, void *data, int silent, int isvfat,
> rootdir_sectors = sbi->dir_entries
> * sizeof(struct msdos_dir_entry) /
> sb->s_blocksize; sbi->data_start = sbi->dir_start +
> rootdir_sectors;
> - total_sectors = get_unaligned_le16(&b->sectors);
> + if (sbi->options.dos1xfloppy)
> + total_sectors = fdefaults->nr_sectors;
> + else
> + total_sectors =
> get_unaligned_le16(&b->sectors); if (total_sectors == 0)
> total_sectors =
> le32_to_cpu(b->total_sect);
I will make an attempt at it.
Thanks,
Conrad
prev parent reply other threads:[~2014-04-13 12:35 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-31 15:22 [PATCH v3] fs: FAT: Add support for DOS 1.x formatted volumes Conrad Meyer
2014-04-01 1:17 ` [PATCH v4] " Conrad Meyer
2014-04-13 3:57 ` OGAWA Hirofumi
2014-04-13 12:35 ` Conrad Meyer [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=20140413083543.2436eee0@m \
--to=cemeyer@uw.edu \
--cc=hirofumi@mail.parknet.co.jp \
--cc=linux-kernel@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox