• Steven Whitehouse's avatar
    GFS2: Add atomic_open support · 6d4ade98
    Steven Whitehouse authored
    I've restricted atomic_open to only operate on regular files, although
    I still don't understand why atomic_open should not be possible also for
    directories on GFS2. That can always be added in later though, if it
    makes sense.
    
    The ->atomic_open function can be passed negative dentries, which
    in most cases means either ENOENT (->lookup) or a call to d_instantiate
    (->create). In the GFS2 case though, we need to actually perform the
    look up, since we do not know whether there has been a new inode created
    on another node. The look up calls d_splice_alias which then tries to
    rehash the dentry - so the solution here is to simply check for that
    in d_splice_alias. The same issue is likely to affect any other cluster
    filesystem implementing ->atomic_open
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: "J. Bruce Fields" <bfields fieldses org>
    Cc: Jeff Layton <jlayton@redhat.com>
    6d4ade98
file.c 27.1 KB