From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751937AbcEISVr (ORCPT ); Mon, 9 May 2016 14:21:47 -0400 Received: from g4t3427.houston.hp.com ([15.201.208.55]:41685 "EHLO g4t3427.houston.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751207AbcEISVq (ORCPT ); Mon, 9 May 2016 14:21:46 -0400 Message-ID: <1462817565.27137.102.camel@hpe.com> Subject: Re: [PATCH v3 2/5] block: Add bdev_supports_dax() for dax mount checks From: Toshi Kani To: Dan Williams Cc: Jan Kara , david , Al Viro , Jens Axboe , Christoph Hellwig , Boaz Harrosh , "Theodore Ts'o" , Andreas Dilger , Ross Zwisler , micah.parrish@hpe.com, "linux-nvdimm@lists.01.org" , linux-fsdevel , "linux-kernel@vger.kernel.org" Date: Mon, 09 May 2016 12:12:45 -0600 In-Reply-To: References: <1462494596-20938-1-git-send-email-toshi.kani@hpe.com> <1462494596-20938-3-git-send-email-toshi.kani@hpe.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.18.5.2 (3.18.5.2-1.fc23) Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, 2016-05-08 at 12:14 -0700, Dan Williams wrote: > On Thu, May 5, 2016 at 5:29 PM, Toshi Kani wrote:  : > > +int bdev_supports_dax(struct super_block *sb, int blocksize) > > +{ > > +       struct blk_dax_ctl dax = { > > +               .sector = 0, > > +               .size = PAGE_SIZE, > > +       }; > > +       int err; > > + > > +       if (blocksize != PAGE_SIZE) { > > +               vfs_msg(sb, KERN_ERR, "error: unsupported blocksize for > > dax"); > > +               return -EINVAL; > > +       } > > + > > +       err = bdev_direct_access(sb->s_bdev, &dax); > > +       if (err < 0) { > > +               switch (err) { > > +               case -EOPNOTSUPP: > > +                       vfs_msg(sb, KERN_ERR, > > +                               "error: device does not support dax"); > > +                       break; > > +               case -EINVAL: > > +                       vfs_msg(sb, KERN_ERR, > > +                               "error: unaligned partition for dax"); > > +                       break; > > +               default: > > +                       vfs_msg(sb, KERN_ERR, > > +                               "error: dax access failed (%d)", err); > > +               } > > +               return err; > > +       } > > + > > +       return 0; > > +} > > +EXPORT_SYMBOL_GPL(bdev_supports_dax); > > This patch should replace blkdev_dax_capable(), or just reuse that > existing routine, or am I missing something? Good question.  bdev_supports_dax() is a helper function tailored for the filesystem's mount -o dax case.  While blkdev_dax_capable() is similar, it does not need error messages like "device does not support dax" since it implicitly enables dax when capable.  So, I think we can keep blkdev_dax_capable(), but change it to call bdev_direct_access() so that actual check is performed in a single place. Thanks, -Toshi