linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali.rohar@gmail.com>
To: Namjae Jeon <namjae.jeon@samsung.com>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	gregkh@linuxfoundation.org, valdis.kletnieks@vt.edu, hch@lst.de,
	sj1557.seo@samsung.com, linkinjeon@gmail.com
Subject: Re: [PATCH v8 01/13] exfat: add in-memory and on-disk structures and headers
Date: Sun, 29 Dec 2019 15:11:08 +0100	[thread overview]
Message-ID: <20191229141108.ufnu6lbu7qvl5oxj@pali> (raw)
In-Reply-To: <20191220062419.23516-2-namjae.jeon@samsung.com>

[-- Attachment #1: Type: text/plain, Size: 3320 bytes --]

On Friday 20 December 2019 01:24:07 Namjae Jeon wrote:
> This adds in-memory and on-disk structures and headers.
> 
> Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
> Signed-off-by: Sungjong Seo <sj1557.seo@samsung.com>
> ---
>  fs/exfat/exfat_fs.h  | 559 +++++++++++++++++++++++++++++++++++++++++++
>  fs/exfat/exfat_raw.h | 202 ++++++++++++++++
>  2 files changed, 761 insertions(+)
>  create mode 100644 fs/exfat/exfat_fs.h
>  create mode 100644 fs/exfat/exfat_raw.h

...

> diff --git a/fs/exfat/exfat_raw.h b/fs/exfat/exfat_raw.h
> new file mode 100644
> index 000000000000..a3ccac835993
> --- /dev/null
> +++ b/fs/exfat/exfat_raw.h

...

> +/* file attributes */
> +#define ATTR_READONLY		0x0001
> +#define ATTR_HIDDEN		0x0002
> +#define ATTR_SYSTEM		0x0004
> +#define ATTR_VOLUME		0x0008
> +#define ATTR_SUBDIR		0x0010
> +#define ATTR_ARCHIVE		0x0020
> +#define ATTR_EXTEND		(ATTR_READONLY | ATTR_HIDDEN | ATTR_SYSTEM | \
> +				 ATTR_VOLUME) /* 0x000F */
> +
> +#define ATTR_EXTEND_MASK	(ATTR_EXTEND | ATTR_SUBDIR | ATTR_ARCHIVE)
> +#define ATTR_RWMASK		(ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME | \
> +				 ATTR_SUBDIR | ATTR_ARCHIVE)
> +
> +#define ATTR_READONLY_LE	cpu_to_le16(0x0001)
> +#define ATTR_HIDDEN_LE		cpu_to_le16(0x0002)
> +#define ATTR_SYSTEM_LE		cpu_to_le16(0x0004)
> +#define ATTR_VOLUME_LE		cpu_to_le16(0x0008)
> +#define ATTR_SUBDIR_LE		cpu_to_le16(0x0010)
> +#define ATTR_ARCHIVE_LE		cpu_to_le16(0x0020)

Hello!

This looks like copy-paste code from /* file attributes */ section
above. What about at least making these macro definitions as?

  #define ATTR_READONLY_LE	cpu_to_le16(ATTR_READONLY)
  #define ATTR_HIDDEN_LE	cpu_to_le16(ATTR_HIDDEN)
  ...

But main question is, are these _LE definitions needed at all?

Looking at the whole patch series and only ATTR_SUBDIR_LE and
ATTR_ARCHIVE_LE are used.

Is not it better to use cpu_to_le16(ATTR_READONLY) directly in code and
do not define duplicate ATTR_READONLY_LE macro at all?

> +
> +#define JUMP_BOOT_LEN			3
> +#define OEM_NAME_LEN			8
> +#define MUST_BE_ZERO_LEN		53
> +#define EXFAT_FILE_NAME_LEN		15
> +
> +/* EXFAT BIOS parameter block (64 bytes) */
> +struct bpb64 {
> +	__u8 jmp_boot[JUMP_BOOT_LEN];
> +	__u8 oem_name[OEM_NAME_LEN];
> +	__u8 res_zero[MUST_BE_ZERO_LEN];
> +};
> +
> +/* EXFAT EXTEND BIOS parameter block (56 bytes) */
> +struct bsx64 {
> +	__le64 vol_offset;
> +	__le64 vol_length;
> +	__le32 fat_offset;
> +	__le32 fat_length;
> +	__le32 clu_offset;
> +	__le32 clu_count;
> +	__le32 root_cluster;
> +	__le32 vol_serial;
> +	__u8 fs_version[2];
> +	__le16 vol_flags;
> +	__u8 sect_size_bits;
> +	__u8 sect_per_clus_bits;
> +	__u8 num_fats;
> +	__u8 phy_drv_no;
> +	__u8 perc_in_use;
> +	__u8 reserved2[7];
> +};

Should not be this structure marked as packed? Also those two below.

> +/* EXFAT PBR[BPB+BSX] (120 bytes) */
> +struct pbr64 {
> +	struct bpb64 bpb;
> +	struct bsx64 bsx;
> +};
> +
> +/* Common PBR[Partition Boot Record] (512 bytes) */
> +struct pbr {
> +	union {
> +		__u8 raw[64];
> +		struct bpb64 f64;
> +	} bpb;
> +	union {
> +		__u8 raw[56];
> +		struct bsx64 f64;
> +	} bsx;
> +	__u8 boot_code[390];
> +	__le16 signature;
> +};

-- 
Pali Rohár
pali.rohar@gmail.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

  reply	other threads:[~2019-12-29 14:11 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20191220062731epcas1p475b8da9288b08c87e474a0c4e88ce219@epcas1p4.samsung.com>
2019-12-20  6:24 ` [PATCH v8 00/13] add the latest exfat driver Namjae Jeon
     [not found]   ` <CGME20191220062732epcas1p17f3b1066fb4d6496559f349f950e1751@epcas1p1.samsung.com>
2019-12-20  6:24     ` [PATCH v8 01/13] exfat: add in-memory and on-disk structures and headers Namjae Jeon
2019-12-29 14:11       ` Pali Rohár [this message]
2019-12-31 13:46         ` Namjae Jeon
2020-01-02 11:06         ` Pali Rohár
2020-01-02 11:11           ` Namjae Jeon
2019-12-31 13:25       ` Markus Elfring
2019-12-31 14:05       ` Markus Elfring
     [not found]   ` <CGME20191220062733epcas1p31665a3ae968ab8c70d91a3cddf529e73@epcas1p3.samsung.com>
2019-12-20  6:24     ` [PATCH v8 02/13] exfat: add super block operations Namjae Jeon
2019-12-29 13:40       ` Pali Rohár
2020-01-02  6:06         ` Namjae Jeon
2020-01-02  8:30           ` Pali Rohár
2020-01-02 13:13             ` Namjae Jeon
2020-01-02 13:16             ` Pali Rohár
2020-01-02 13:41               ` Namjae Jeon
2020-01-02 14:13                 ` Pali Rohár
2019-12-29 13:55       ` Pali Rohár
2019-12-31 13:32         ` Namjae Jeon
2020-01-08 19:55       ` Arnd Bergmann
2020-01-09 23:36         ` Namjae Jeon
     [not found]   ` <CGME20191220062733epcas1p1afd7af6ca2bfbde3d9a883f55f4f3b60@epcas1p1.samsung.com>
2019-12-20  6:24     ` [PATCH v8 03/13] exfat: add inode operations Namjae Jeon
2019-12-29 14:15       ` Pali Rohár
2019-12-31 13:53         ` Namjae Jeon
     [not found]   ` <CGME20191220062734epcas1p4888919aeb168f55595fec24b624eacc6@epcas1p4.samsung.com>
2019-12-20  6:24     ` [PATCH v8 04/13] exfat: add directory operations Namjae Jeon
     [not found]   ` <CGME20191220062734epcas1p2ba4db24017a2eca92eeeedd101200a7f@epcas1p2.samsung.com>
2019-12-20  6:24     ` [PATCH v8 05/13] exfat: add file operations Namjae Jeon
     [not found]   ` <CGME20191220062735epcas1p4aaffe2759e136136fc42b9764b6eb68a@epcas1p4.samsung.com>
2019-12-20  6:24     ` [PATCH v8 06/13] exfat: add exfat entry operations Namjae Jeon
     [not found]   ` <CGME20191220062735epcas1p1a4b960f26a520d26b5cad7aebc7e91cb@epcas1p1.samsung.com>
2019-12-20  6:24     ` [PATCH v8 07/13] exfat: add bitmap operations Namjae Jeon
     [not found]   ` <CGME20191220062736epcas1p3c58bf86018ba9caef90b3a6476b4b925@epcas1p3.samsung.com>
2019-12-20  6:24     ` [PATCH v8 08/13] exfat: add exfat cache Namjae Jeon
2019-12-29 14:23       ` Pali Rohár
2019-12-31 13:52         ` Namjae Jeon
2020-01-02 10:19           ` [v8 " Markus Elfring
2020-01-08 18:08             ` Pali Rohár
2020-01-08 18:46               ` Christoph Hellwig
2020-01-08 19:01                 ` Pali Rohár
     [not found]   ` <CGME20191220062737epcas1p3c0f9e408640148c9186b84efc6d6658b@epcas1p3.samsung.com>
2019-12-20  6:24     ` [PATCH v8 09/13] exfat: add misc operations Namjae Jeon
2019-12-29 14:00       ` Pali Rohár
2019-12-31 13:34         ` Namjae Jeon
     [not found]   ` <CGME20191220062737epcas1p436e6ecee04e4bee088d915f84b53c899@epcas1p4.samsung.com>
2019-12-20  6:24     ` [PATCH v8 10/13] exfat: add nls operations Namjae Jeon
2019-12-31 14:23       ` Markus Elfring
2019-12-31 18:01         ` Joe Perches
2020-01-02  9:56       ` Markus Elfring
     [not found]   ` <CGME20191220062738epcas1p2aa7a91f04263efc3d6d7200eb04c1296@epcas1p2.samsung.com>
2019-12-20  6:24     ` [PATCH v8 11/13] exfat: add Kconfig and Makefile Namjae Jeon
     [not found]   ` <CGME20191220062739epcas1p4fcda127a4b5a4e06bf53f7da4dbd045c@epcas1p4.samsung.com>
2019-12-20  6:24     ` [PATCH v8 12/13] exfat: add exfat in fs/Kconfig and fs/Makefile Namjae Jeon
2019-12-23 22:17       ` kbuild test robot
     [not found]   ` <CGME20191220062739epcas1p42f6096d78247630cfd02fc069ca072d3@epcas1p4.samsung.com>
2019-12-20  6:24     ` [PATCH v8 13/13] MAINTAINERS: add exfat filesystem Namjae Jeon
2019-12-31 13:00   ` [PATCH v8 00/13] add the latest exfat driver Markus Elfring
2019-12-31 15:14   ` Matthew Wilcox
2019-12-31 23:56     ` Namjae Jeon

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=20191229141108.ufnu6lbu7qvl5oxj@pali \
    --to=pali.rohar@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@lst.de \
    --cc=linkinjeon@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=namjae.jeon@samsung.com \
    --cc=sj1557.seo@samsung.com \
    --cc=valdis.kletnieks@vt.edu \
    /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;
as well as URLs for NNTP newsgroup(s).