#ifndef _BCACHEFS_FS_IO_H
#define _BCACHEFS_FS_IO_H
#ifndef NO_BCACHEFS_FS
#include "buckets.h"
#include "fs.h"
#include "io_write_types.h"
#include "quota.h"
#include <linux/uio.h>
struct folio_vec { … };
static inline struct folio_vec biovec_to_foliovec(struct bio_vec bv)
{ … }
static inline struct folio_vec bio_iter_iovec_folio(struct bio *bio,
struct bvec_iter iter)
{ … }
#define __bio_for_each_folio(bvl, bio, iter, start) …
#define bio_for_each_folio(bvl, bio, iter) …
struct quota_res { … };
#ifdef CONFIG_BCACHEFS_QUOTA
static inline void __bch2_quota_reservation_put(struct bch_fs *c,
struct bch_inode_info *inode,
struct quota_res *res)
{ … }
static inline void bch2_quota_reservation_put(struct bch_fs *c,
struct bch_inode_info *inode,
struct quota_res *res)
{ … }
static inline int bch2_quota_reservation_add(struct bch_fs *c,
struct bch_inode_info *inode,
struct quota_res *res,
u64 sectors,
bool check_enospc)
{ … }
#else
static inline void __bch2_quota_reservation_put(struct bch_fs *c,
struct bch_inode_info *inode,
struct quota_res *res) {}
static inline void bch2_quota_reservation_put(struct bch_fs *c,
struct bch_inode_info *inode,
struct quota_res *res) {}
static inline int bch2_quota_reservation_add(struct bch_fs *c,
struct bch_inode_info *inode,
struct quota_res *res,
unsigned sectors,
bool check_enospc)
{
return 0;
}
#endif
void __bch2_i_sectors_acct(struct bch_fs *, struct bch_inode_info *,
struct quota_res *, s64);
static inline void bch2_i_sectors_acct(struct bch_fs *c, struct bch_inode_info *inode,
struct quota_res *quota_res, s64 sectors)
{ … }
static inline struct address_space *faults_disabled_mapping(void)
{ … }
static inline void set_fdm_dropped_locks(void)
{ … }
static inline bool fdm_dropped_locks(void)
{ … }
void bch2_inode_flush_nocow_writes_async(struct bch_fs *,
struct bch_inode_info *, struct closure *);
int __must_check bch2_write_inode_size(struct bch_fs *,
struct bch_inode_info *,
loff_t, unsigned);
int bch2_fsync(struct file *, loff_t, loff_t, int);
int bchfs_truncate(struct mnt_idmap *,
struct bch_inode_info *, struct iattr *);
long bch2_fallocate_dispatch(struct file *, int, loff_t, loff_t);
loff_t bch2_remap_file_range(struct file *, loff_t, struct file *,
loff_t, loff_t, unsigned);
loff_t bch2_llseek(struct file *, loff_t, int);
void bch2_fs_fsio_exit(struct bch_fs *);
int bch2_fs_fsio_init(struct bch_fs *);
#else
static inline void bch2_fs_fsio_exit(struct bch_fs *c) {}
static inline int bch2_fs_fsio_init(struct bch_fs *c) { return 0; }
#endif
#endif