Skip to content
  • Miklos Szeredi's avatar
    fuse: readdirplus: fix RCU walk · 6314efee
    Miklos Szeredi authored
    
    
    Doing dput(parent) is not valid in RCU walk mode.  In RCU mode it would
    probably be okay to update the parent flags, but it's actually not
    necessary most of the time...
    
    So only set the FUSE_I_ADVISE_RDPLUS flag on the parent when the entry was
    recently initialized by READDIRPLUS.
    
    This is achieved by setting FUSE_I_INIT_RDPLUS on entries added by
    READDIRPLUS and only dropping out of RCU mode if this flag is set.
    FUSE_I_INIT_RDPLUS is cleared once the FUSE_I_ADVISE_RDPLUS flag is set in
    the parent.
    
    Reported-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
    Cc: stable@vger.kernel.org
    6314efee