• Al Viro's avatar
    simplify lookup_open()/atomic_open() - do the temporary mnt_want_write() early · 64894cf8
    Al Viro authored
    The write ref to vfsmount taken in lookup_open()/atomic_open() is going to
    be dropped; we take the one to stay in dentry_open().  Just grab the temporary
    in caller if it looks like we are going to need it (create/truncate/writable open)
    and pass (by value) "has it succeeded" flag.  Instead of doing mnt_want_write()
    inside, check that flag and treat "false" as "mnt_want_write() has just failed".
    mnt_want_write() is cheap and the things get considerably simpler and more robust
    that way - we get it and drop it in the same function, to start with, rather
    than passing a "has something in the guts of really scary functions taken it"
    back to caller.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    64894cf8
namei.c 96.9 KB