• Pavel Emelyanov's avatar
    nfsd: safer initialization order in find_file() · 47cee541
    Pavel Emelyanov authored
    The alloc_init_file() first adds a file to the hash and then
    initializes its fi_inode, fi_id and fi_had_conflict.
    
    The uninitialized fi_inode could thus be erroneously checked by
    the find_file(), so move the hash insertion lower.
    
    The client_mutex should prevent this race in practice; however, we
    eventually hope to make less use of the client_mutex, so the ordering
    here is an accident waiting to happen.
    
    I didn't find whether the same can be true for two other fields,
    but the common sense tells me it's better to initialize an object
    before putting it into a global hash table :)
    Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    47cee541
nfs4state.c 110 KB