mirror of
https://github.com/ceph/ceph
synced 2025-01-11 13:41:02 +00:00
07ac5d3e74
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1068 29311d96-e01e-0410-9327-a35deaab8ce9
53 lines
1.4 KiB
Plaintext
53 lines
1.4 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
|
|
|
|
O_LAZY to open(2)
|
|
|
|
* 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); |