O_RDWR bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am currently testing Ceph , l write some code like this:

             size_t fd = open("/mnt/aaa", O_CREAT | O_RDWR | O_APPEND , 0755);

then l can not write buffer to the fd, 1 think there is something wrong in :

int ceph_flags_to_mode(int flags)

{

          ...

         if ((flags & O_ACCMODE) == O_RDWR)
		mode = CEPH_FILE_MODE_RDWR;
	 else if ((flags & O_ACCMODE) == O_WRONLY) //?
		mode = CEPH_FILE_MODE_WR;
	 else
		mode = CEPH_FILE_MODE_RD;

          ...

}

if change the "(flags & O_ACCMODE) == O_WRONLY" to "(flags &
O_ACCMODE) == O_ACCMODE", l can write success!

another problem, I am trying to use a Ceph cfuse client to mount Ceph
DFS(/mnt/) and

set up a samba server to share the mount point(/mnt),l find it not so
fast as expected, l  analyse the log :

                   2011-06-24 09:25:43.677606 7f11cdecd700 --
192.168.1.110:0/7088 dispatch_queue.cond.Wait

                  2011-06-24 09:25:43.738812 7f11d130a720 client
method:getxattr path:security.capability

the SimpleMessenger thread  replyed the osd ,it wait ,the problem is
the next FUSE operation is very slowly,

why the fuse thread  and SimpleMessenger thread can not work in parallel

anybody have the same problem with me?
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux