• Vyacheslav Dubeyko's avatar
    hfsplus: fix remount issue · bd2c0035
    Vyacheslav Dubeyko authored
    Current implementation of HFS+ driver has small issue with remount
    option.  Namely, for example, you are unable to remount from RO mode
    into RW mode by means of command "mount -o remount,rw /dev/loop0
    /mnt/hfsplus".  Trying to execute sequence of commands results in an
    error message:
    
      mount /dev/loop0 /mnt/hfsplus
      mount -o remount,ro /dev/loop0 /mnt/hfsplus
      mount -o remount,rw /dev/loop0 /mnt/hfsplus
    
      mount: you must specify the filesystem type
    
      mount -t hfsplus -o remount,rw /dev/loop0 /mnt/hfsplus
    
      mount: /mnt/hfsplus not mounted or bad option
    
    The reason of such issue is failure of mount syscall:
    
      mount("/dev/loop0", "/mnt/hfsplus", 0x2282a60, MS_MGC_VAL|MS_REMOUNT, NULL) = -1 EINVAL (Invalid argument)
    
    Namely, hfsplus_parse_options_remount() method receives empty "input"
    argument and return false in such case.  As a result, hfsplus_remount()
    returns -EINVAL error code.
    
    This patch fixes the issue by means of return true for the case of empty
    "input" argument in hfsplus_parse_options_remount() method.
    Signed-off-by: default avatarVyacheslav Dubeyko <slava@dubeyko.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Christoph Hellwig <hch@infradead.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    bd2c0035
options.c 5.28 KB