ceph/src/doc/lazy_posix.txt
Sage Weil 94afedf02d client: remove O_LAZY
The once-upon-a-time unique O_LAZY value I chose forever ago is now
O_NOATIME, which means that some clients are choosing relaxed
consistency without meaning to.

It is highly unlikely that a real O_LAZY will ever exist, and we can
select it in the ceph case with the ioctl or libcephfs call, so drop
any support for doing this via open(2) flags.

Update doc/lazy_posix.txt file re: lazy io.

Backport: cuttlefish
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
2013-07-08 11:24:48 -07:00

54 lines
1.5 KiB
Plaintext

http://www.usenix.org/events/fast05/wips/slides/welch.pdf
-- STATLITE
statlite(const char *filename, struct statlite *buf);
fstatlite(int fd, struct statlite *buf);
lstatlite(const char *filename, struct statlite *buf);
* file size, mtime are optionally not guaranteed to be correct
* mask field to specify which fields you need to be correct
-- READDIR+
struct dirent_plus *readdirplus(DIR *dirp);
int readdirplus_r(DIR *dirp, struct dirent_plus *entry, struct dirent_plus **result);
struct dirent_lite *readdirlite(DIR *dirp);
int readdirlite_r(DIR *dirp, struct dirent_lite *entry, struct dirent_lite **result);
* plus returns lstat
* lite returns lstatlite
-- lazy i/o integrity
FIXME: currently missing call to flag an Fd/file has lazy. used to be O_LAZY on open, but no more.
* relax data coherency
* writes may not be visible until lazyio_propagate, fsync, close
lazyio_propagate(int fd, off_t offset, size_t count);
* my writes are safe
lazyio_synchronize(int fd, off_t offset, size_t count);
* i will see everyone else's propagated writes
-- read/write non-serial vectors
ssize_t readx(int fd, const struct iovec *iov, size_t iov_count, struct xtvec *xtv, size_t xtv_count);
ssize_t writex(int fd, const struct iovec *iov, size_t iov_count, struct xtvec *xtv, size_t xtv_count);
* like readv/writev, but serial
*
int lockg(int fd, int cmd, lgid_t *lgid)
group locks
int openg(char *path, int mode, fh_t *handle);
portable file handle
int sutoc(fh_t *fh);