ceph: simplify+fix atomic_open
authorSage Weil <sage@inktank.com>
Tue, 31 Jul 2012 18:27:36 +0000 (11:27 -0700)
committerSage Weil <sage@inktank.com>
Thu, 2 Aug 2012 16:11:19 +0000 (09:11 -0700)
commit5ef50c3bec20060bc114f62d6503c5d86d70bdd7
tree0777f7c9bef358fe7778e11874a6a750e0d2ceab
parent1a9b4993b70fb1884716902774dc9025b457760d
ceph: simplify+fix atomic_open

The initial ->atomic_open op was carried over from the old intent code,
which was incomplete and didn't really work.  Replace it with a fresh
method.  In particular:

 * always attempt to do an atomic open+lookup, both for the create case
   and for lookups of existing files.
 * fix symlink handling by returning 1 to the VFS so that we can follow
   the link to its destination. This fixes a longstanding ceph bug (#2392).

Signed-off-by: Sage Weil <sage@inktank.com>
fs/ceph/dir.c
fs/ceph/file.c
fs/ceph/super.h