On Wed, Sep 2, 2015 at 10:00 AM, Janusz Borkowski <janusz.borkowski@xxxxxxxxxxxxxx> wrote: > Hi! > > I mount cephfs using kernel client (3.10.0-229.11.1.el7.x86_64). > > The effect is the same when doing "echo >>" from another machine and from a > machine keeping the file open. > > The file is opened with open( .., > O_WRONLY|O_LARGEFILE|O_APPEND|O_BINARY|O_CREAT) > > Shell ">>" is implemented as (from strace bash -c "echo '7789' >> > /mnt/ceph/test): > > open("/mnt/ceph/test", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3 > > The test file had ~500KB size. > > Each subsequent "echo >>" writes to the start of the test file, first "echo" > overwriting the original contents, next "echos" overwriting bytes written by > the preceding "echo". Hmmm. The userspace (ie, ceph-fuse) implementation of this is a little bit racy but ought to work. I'm not as familiar with the kernel code but I'm not seeing any special behavior in the Ceph code — Zheng, would you expect this to work? It looks like some of the linux filesystems have their own O_APPEND handling and some don't, but I can't find it in the VFS either. -Greg _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com