• Vivek Goyal's avatar
    fuse: separate fuse device allocation and installation in fuse_conn · 0cd1eb9a
    Vivek Goyal authored
    As of now fuse_dev_alloc() both allocates a fuse device and installs it in
    fuse_conn list.  fuse_dev_alloc() can fail if fuse_device allocation fails.
    
    virtio-fs needs to initialize multiple fuse devices (one per virtio queue).
    It initializes one fuse device as part of call to fuse_fill_super_common()
    and rest of the devices are allocated and installed after that.
    
    But, we can't afford to fail after calling fuse_fill_super_common() as we
    don't have a way to undo all the actions done by fuse_fill_super_common().
    So to avoid failures after the call to fuse_fill_super_common(),
    pre-allocate all fuse devices early and install them into fuse connection
    later.
    
    This patch provides two separate helpers for fuse device allocation and
    fuse device installation in fuse_conn.
    Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    0cd1eb9a
dev.c 51.6 KB