+++ /dev/null
-#ifndef CEPH_CLIENT_FH_H
-#define CEPH_CLIENT_FH_H
-
-#include "common/Readahead.h"
-#include "include/types.h"
-#include "InodeRef.h"
-#include "UserPerm.h"
-
-class Cond;
-class ceph_lock_state_t;
-class Inode;
-
-// file handle for any open file state
-
-struct Fh {
- InodeRef inode;
- int _ref;
- loff_t pos;
- int mds; // have to talk to mds we opened with (for now)
- int mode; // the mode i opened the file with
-
- int flags;
- bool pos_locked; // pos is currently in use
- list<Cond*> pos_waiters; // waiters for pos
-
- UserPerm actor_perms; // perms I opened the file with
-
- Readahead readahead;
-
- // file lock
- ceph_lock_state_t *fcntl_locks;
- ceph_lock_state_t *flock_locks;
-
- // IO error encountered by any writeback on this Inode while
- // this Fh existed (i.e. an fsync on another Fh will still show
- // up as an async_err here because it could have been the same
- // bytes we wrote via this Fh).
- int async_err = {0};
-
- int take_async_err()
- {
- int e = async_err;
- async_err = 0;
- return e;
- }
-
- Fh(Inode *in);
- ~Fh();
- void get() { ++_ref; }
- int put() { return --_ref; }
-};
-
-
-#endif