Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4079661imu; Mon, 10 Dec 2018 12:46:16 -0800 (PST) X-Google-Smtp-Source: AFSGD/XguaP/IyZI0OsmskyJmo2C5LxBUww0RU/5ymDio5wEqWK3Dr2dc5opXuAsyWSWpEqL/xAz X-Received: by 2002:a63:e80e:: with SMTP id s14mr12126141pgh.30.1544474776024; Mon, 10 Dec 2018 12:46:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544474775; cv=none; d=google.com; s=arc-20160816; b=CM/43DkOIxHsGwubsJ3o+7nG7vB9W3/2CC0s3YIfA1b+FVjAA+nby+4HX2Xql7VGhz 1BJkZxZyXNjR9vmfYxUhg6ZKiT3jhnaPRwPpMsWiQChJ5LjtpTaDYkVo0NGXfmtLW/qx 3t+BrbpUxo8z2TfkJRWdrin5ElSOtGvTaV7ZyqRfwa9SnBB4kCp+QJlBmel0vxUVQ9JF A66rqqTw7lLPH042s2atYnVXw8yeUi9Gf3zAODIq/PsKlzlQ0LsiikWVGxAJw+8/bz9p opEvbIBl1xk8t8ZLi1WgW8raqyZTKnOEoGrkwZpzQYoUqfkf2R7QSke3riXud89P6xeN A7bQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:date:to:from:subject:message-id; bh=aU7rKB5Yq6V5XuTz6SkjKl2I/0oF4cjsmJx7pL672ZM=; b=SR64MM9sVhx4qQn+aGFvThC6tYLeiTX7O4HSVPOYxo2EFVMOaLvTE7gKFzfB9DWD9L cy9WqR8JwoxE6BSrLhdwhqHtoifdQz3AaW58YRdV2rT00gEQMy+J/AIkqTLVoJPIFZiG vP96ezGE6Z5Peznec78ZTwWvs6MOeE5YqbAVwxvUzrWKYD58rKd/Yy9sd1qUfgEXPQ/w qcmDq8P9z/UKcQUHiwTIBxfwdM5RFj7Y9yCi8chqCTiQPwY1JUNvldBb5+KwS9brn/FG wIQ2SDuAZTAucX9H92hPpYNajILdg3OLTulL3IGRsZhjgziwvyyz+mRa8A3NSnVnapJj vVJg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n2si11557028pgr.67.2018.12.10.12.46.00; Mon, 10 Dec 2018 12:46:15 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729786AbeLJUJg (ORCPT + 99 others); Mon, 10 Dec 2018 15:09:36 -0500 Received: from smtprelay0145.hostedemail.com ([216.40.44.145]:38926 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727156AbeLJUJg (ORCPT ); Mon, 10 Dec 2018 15:09:36 -0500 Received: from filter.hostedemail.com (clb03-v110.bra.tucows.net [216.40.38.60]) by smtprelay02.hostedemail.com (Postfix) with ESMTP id F06281E253E; Mon, 10 Dec 2018 20:09:34 +0000 (UTC) X-Session-Marker: 6A6F6540706572636865732E636F6D X-Spam-Summary: 2,0,0,,d41d8cd98f00b204,joe@perches.com,:::::::::::::::::,RULES_HIT:41:355:371:372:379:599:968:973:988:989:1260:1277:1311:1313:1314:1345:1359:1381:1437:1515:1516:1518:1534:1542:1593:1594:1711:1730:1747:1777:1792:2198:2199:2393:2553:2559:2562:2828:3138:3139:3140:3141:3142:3354:3622:3865:3866:3867:3868:3870:3871:3872:4250:4321:4605:5007:6117:10004:10400:10848:11026:11232:11473:11658:11914:12048:12296:12533:12555:12740:12760:12895:13439:14659:14721:21080:21433:21451:21627:21810:30012:30034:30054:30090:30091,0,RBL:47.151.153.53:@perches.com:.lbl8.mailshell.net-62.8.0.100 64.201.201.201,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:neutral,Custom_rules:0:0:0,LFtime:28,LUA_SUMMARY:none X-HE-Tag: list12_536ccd5624b2a X-Filterd-Recvd-Size: 3131 Received: from XPS-9350.home (unknown [47.151.153.53]) (Authenticated sender: joe@perches.com) by omf02.hostedemail.com (Postfix) with ESMTPA; Mon, 10 Dec 2018 20:09:33 +0000 (UTC) Message-ID: <906167f7ca975d437ff9868333d8bf1e86b934a7.camel@perches.com> Subject: Re: [PATCH 2/2] fat: New macros to determine the FAT variant (32, 16 or 12) From: Joe Perches To: Carmeli Tamir , hirofumi@mail.parknet.co.jp, jthumshirn@suse.de, sergey.senozhatsky@gmail.com, akpm@linux-foundation.org, axboe@kernel.dk, martin.petersen@oracle.com, bvanassche@acm.org, linux-kernel@vger.kernel.org Date: Mon, 10 Dec 2018 12:09:31 -0800 In-Reply-To: <1544470917-6443-3-git-send-email-carmeli.tamir@gmail.com> References: <1544470917-6443-1-git-send-email-carmeli.tamir@gmail.com> <1544470917-6443-3-git-send-email-carmeli.tamir@gmail.com> Content-Type: text/plain; charset="ISO-8859-1" User-Agent: Evolution 3.30.1-1build1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 2018-12-10 at 14:41 -0500, Carmeli Tamir wrote: > This patch introduces 3 new macros - IS_FAT12, IS_FAT16 and IS_FAT32, > and replaces every occurrence in the code in which the FS variant (whether > this is FAT12, FAT16 or FAT32) was previously checked using > msdos_sb_info->fat_bits. Overall a nice cleanup and a couple style suggestions: > diff --git a/fs/fat/cache.c b/fs/fat/cache.c > index 78d501c..99962b3 100644 > --- a/fs/fat/cache.c > +++ b/fs/fat/cache.c > @@ -363,7 +363,7 @@ int fat_bmap(struct inode *inode, sector_t sector, sector_t *phys, > > *phys = 0; > *mapped_blocks = 0; > - if ((sbi->fat_bits != 32) && (inode->i_ino == MSDOS_ROOT_INO)) { > + if ((!IS_FAT32(sbi)) && (inode->i_ino == MSDOS_ROOT_INO)) { Perhaps nicer without the parens around !IS_FAT32(sbi) [] > diff --git a/fs/fat/fat.h b/fs/fat/fat.h [] > @@ -116,12 +116,16 @@ static inline struct msdos_sb_info *MSDOS_SB(struct super_block *sb) > * this is FAT12, FAT16 or FAT32. > */ > > -#define FAT_FIRST_ENT(s, x) ((MSDOS_SB(s)->fat_bits == 32 ? 0x0FFFFF00 : \ > - MSDOS_SB(s)->fat_bits == 16 ? 0xFF00 : 0xF00) | (x)) > +#define IS_FAT12(sbi) (sbi->fat_bits == 12) > +#define IS_FAT16(sbi) (sbi->fat_bits == 16) > +#define IS_FAT32(sbi) (sbi->fat_bits == 32) sbi should be parenthesized or perhaps better these should be static inline bool functions > + > +#define FAT_FIRST_ENT(s, x) ((IS_FAT32(MSDOS_SB(s)) ? 0x0FFFFF00 : \ > + IS_FAT16(MSDOS_SB(s)) ? 0xFF00 : 0xF00) | (x)) This is probably nicer to use a statement expression macro so MSDOS_SB(s) is only evaluated once or convert this to a static inline, but it may even better to remove it altogether instead as it seems unused anywhere. > > /* maximum number of clusters */ > -#define MAX_FAT(s) (MSDOS_SB(s)->fat_bits == 32 ? MAX_FAT32 : \ > - MSDOS_SB(s)->fat_bits == 16 ? MAX_FAT16 : MAX_FAT12) > +#define MAX_FAT(s) (IS_FAT32(MSDOS_SB(s)) ? MAX_FAT32 : \ > + IS_FAT16(MSDOS_SB(s)) ? MAX_FAT16 : MAX_FAT12) Used once, so perhaps better inlined there.