return _preadv_pwritev_locked(fh, iov, iovcnt, off, false, false);
}
+int64_t Client::ll_preadv_pwritev(struct Fh *fh, const struct iovec *iov,
+ int iovcnt, int64_t offset, bool write,
+ Context *onfinish, bufferlist *bl)
+{
+ RWRef_t mref_reader(mount_state, CLIENT_MOUNTING);
+ if (!mref_reader.is_state_satisfied())
+ return -CEPHFS_ENOTCONN;
+
+ std::scoped_lock cl(client_lock);
+ return _preadv_pwritev_locked(fh, iov, iovcnt, offset, write, true,
+ onfinish, bl);
+}
+
int Client::ll_flush(Fh *fh)
{
RWRef_t mref_reader(mount_state, CLIENT_MOUNTING);
int ll_write(Fh *fh, loff_t off, loff_t len, const char *data);
int64_t ll_readv(struct Fh *fh, const struct iovec *iov, int iovcnt, int64_t off);
int64_t ll_writev(struct Fh *fh, const struct iovec *iov, int iovcnt, int64_t off);
+ int64_t ll_preadv_pwritev(struct Fh *fh, const struct iovec *iov, int iovcnt,
+ int64_t offset, bool write,
+ Context *onfinish = nullptr,
+ bufferlist *blp = nullptr);
loff_t ll_lseek(Fh *fh, loff_t offset, int whence);
int ll_flush(Fh *fh);
int ll_fsync(Fh *fh, bool syncdataonly);