All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali.rohar@gmail.com>
To: "chen.chenchacha" <chen.chenchacha@qq.com>
Cc: hirofumi@mail.parknet.co.jp, linux-kernel@vger.kernel.org,
	andy.shevchenko@gmail.com
Subject: Re: [PATCH 1/2] Add FAT_IOCTL_GET_VOLUME_LABEL in fat_generic_ioctl()
Date: Sat, 6 Oct 2018 10:37:48 +0200	[thread overview]
Message-ID: <20181006083748.h34r65j4drwri3vg@pali> (raw)
In-Reply-To: <5bb8734a.1c69fb81.9fdf4.0461SMTPIN_ADDED_BROKEN@mx.google.com>

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

On Saturday 06 October 2018 16:33:10 chen.chenchacha wrote:
> On Thu, 2018-10-04 at 19:33 +0200, Pali Rohár wrote:
> > On Friday 05 October 2018 01:21:00 chenchacha wrote:
> > > Signed-off-by: chenchacha <chen.chenchacha@foxmail.com>
> > > ---
> > >  fs/fat/file.c                 | 22 ++++++++++++++++++++++
> > >  include/uapi/linux/msdos_fs.h |  1 +
> > >  2 files changed, 23 insertions(+)
> > > 
> > > diff --git a/fs/fat/file.c b/fs/fat/file.c
> > > index 4724cc9ad650..56db0b5a8df1 100644
> > > --- a/fs/fat/file.c
> > > +++ b/fs/fat/file.c
> > > @@ -121,10 +121,30 @@ static int fat_ioctl_get_volume_id(struct
> > > inode *inode, u32 __user *user_attr)
> > >  	return put_user(sbi->vol_id, user_attr);
> > >  }
> > >  
> > > +static int fat_ioctl_get_volume_label(struct inode *inode, u8
> > > __user *label)
> > > +{
> > > +	struct super_block *sb = inode->i_sb;
> > > +	struct inode *root_inode = d_inode(sb->s_root);
> > > +	struct buffer_head *bh = NULL;
> > > +	struct msdos_dir_entry *de;
> > > +	int err;
> > > +
> > > +	inode_lock_shared(root_inode);
> > > +	err = fat_get_root_entry(root_inode, &bh, &de);
> > > +	if (err == 0) {
> > > +		if (copy_to_user(label, de->name, MSDOS_NAME))
> > 
> > You need to convert entry name from 8.3 format to label in correct
> > encoding specified by codepage mount option. Plus needs to handle
> > leading 0x03 byte.
> > 
> I think it might be better to put the decoder/encoder on the
> application layter.

I do not think so. On all other places in msdos.ko and vfat.ko driver
which communicate with userspace is that decoder/encoder active and user
does not see raw bytes.

It is really bad to mix encodings and API of different calls.

If in mount option I specified that I want to use XYZ encoding, why
driver does not going to respect it?

> Similarly, the handle leading 0x03 byte is in the
> write function. And make read operation pure, just to carry the volume
> label in root directory to the user.
> 
> What do you think, Pali?
> 

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

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

      parent reply	other threads:[~2018-10-06  8:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-04 17:20 [PATCH 0/2] fs: fat: add ioctl method to read voluem label in fat filesystem driver chenchacha
2018-10-04 17:21 ` [PATCH 2/2] Add a new function to get root directory with ATTR_VOLUME chenchacha
2018-10-04 17:29   ` Pali Rohár
2018-10-04 17:26 ` [PATCH 0/2] fs: fat: add ioctl method to read voluem label in fat filesystem driver Pali Rohár
     [not found] ` <20181004172101.15525-2-chen.chenchacha@foxmail.com>
2018-10-04 17:33   ` [PATCH 1/2] Add FAT_IOCTL_GET_VOLUME_LABEL in fat_generic_ioctl() Pali Rohár
     [not found]     ` <5bb8734a.1c69fb81.9fdf4.0461SMTPIN_ADDED_BROKEN@mx.google.com>
2018-10-06  8:37       ` Pali Rohár [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=20181006083748.h34r65j4drwri3vg@pali \
    --to=pali.rohar@gmail.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=chen.chenchacha@qq.com \
    --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 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.