Skip to content
Snippets Groups Projects
  • Antonios Motakis's avatar
    1a6ed33c
    9p: Added virtfs option 'multidevs=remap|forbid|warn' · 1a6ed33c
    Antonios Motakis authored
    
    'warn' (default): Only log an error message (once) on host if more than one
    device is shared by same export, except of that just ignore this config
    error though. This is the default behaviour for not breaking existing
    installations implying that they really know what they are doing.
    
    'forbid': Like 'warn', but except of just logging an error this
    also denies access of guest to additional devices.
    
    'remap': Allows to share more than one device per export by remapping
    inodes from host to guest appropriately. To support multiple devices on the
    9p share, and avoid qid path collisions we take the device id as input to
    generate a unique QID path. The lowest 48 bits of the path will be set
    equal to the file inode, and the top bits will be uniquely assigned based
    on the top 16 bits of the inode and the device id.
    
    Signed-off-by: default avatarAntonios Motakis <antonios.motakis@huawei.com>
    [CS: - Rebased to https://github.com/gkurz/qemu/commits/9p-next
    
    
           (SHA1 7fc4c49e91).
         - Added virtfs option 'multidevs', original patch simply did the inode
           remapping without being asked.
         - Updated hash calls to new xxhash API.
         - Updated docs for new option 'multidevs'.
         - Fixed v9fs_do_readdir() not having remapped inodes.
         - Log error message when running out of prefixes in
           qid_path_prefixmap().
         - Fixed definition of QPATH_INO_MASK.
         - Wrapped qpp_table initialization to dedicated qpp_table_init()
           function.
         - Dropped unnecessary parantheses in qpp_lookup_func().
         - Dropped unnecessary g_malloc0() result checks. ]
    Signed-off-by: default avatarChristian Schoenebeck <qemu_oss@crudebyte.com>
    [groug: - Moved "multidevs" parsing to the local backend.
            - Added hint to invalid multidevs option error.
    	- Turn "remap" into "x-remap". ]
    Signed-off-by: default avatarGreg Kurz <groug@kaod.org>
    1a6ed33c
    History
    9p: Added virtfs option 'multidevs=remap|forbid|warn'
    Antonios Motakis authored
    
    'warn' (default): Only log an error message (once) on host if more than one
    device is shared by same export, except of that just ignore this config
    error though. This is the default behaviour for not breaking existing
    installations implying that they really know what they are doing.
    
    'forbid': Like 'warn', but except of just logging an error this
    also denies access of guest to additional devices.
    
    'remap': Allows to share more than one device per export by remapping
    inodes from host to guest appropriately. To support multiple devices on the
    9p share, and avoid qid path collisions we take the device id as input to
    generate a unique QID path. The lowest 48 bits of the path will be set
    equal to the file inode, and the top bits will be uniquely assigned based
    on the top 16 bits of the inode and the device id.
    
    Signed-off-by: default avatarAntonios Motakis <antonios.motakis@huawei.com>
    [CS: - Rebased to https://github.com/gkurz/qemu/commits/9p-next
    
    
           (SHA1 7fc4c49e91).
         - Added virtfs option 'multidevs', original patch simply did the inode
           remapping without being asked.
         - Updated hash calls to new xxhash API.
         - Updated docs for new option 'multidevs'.
         - Fixed v9fs_do_readdir() not having remapped inodes.
         - Log error message when running out of prefixes in
           qid_path_prefixmap().
         - Fixed definition of QPATH_INO_MASK.
         - Wrapped qpp_table initialization to dedicated qpp_table_init()
           function.
         - Dropped unnecessary parantheses in qpp_lookup_func().
         - Dropped unnecessary g_malloc0() result checks. ]
    Signed-off-by: default avatarChristian Schoenebeck <qemu_oss@crudebyte.com>
    [groug: - Moved "multidevs" parsing to the local backend.
            - Added hint to invalid multidevs option error.
    	- Turn "remap" into "x-remap". ]
    Signed-off-by: default avatarGreg Kurz <groug@kaod.org>