#include <linux/blkdev.h>
#include <linux/fileattr.h>
#include "protocol.h"
#include "orangefs-kernel.h"
#include "orangefs-bufmap.h"
static int orangefs_writepage_locked(struct page *page,
struct writeback_control *wbc)
{ … }
static int orangefs_writepage(struct page *page, struct writeback_control *wbc)
{ … }
struct orangefs_writepages { … };
static int orangefs_writepages_work(struct orangefs_writepages *ow,
struct writeback_control *wbc)
{ … }
static int orangefs_writepages_callback(struct folio *folio,
struct writeback_control *wbc, void *data)
{ … }
static int orangefs_writepages(struct address_space *mapping,
struct writeback_control *wbc)
{ … }
static int orangefs_launder_folio(struct folio *);
static void orangefs_readahead(struct readahead_control *rac)
{ … }
static int orangefs_read_folio(struct file *file, struct folio *folio)
{ … }
static int orangefs_write_begin(struct file *file,
struct address_space *mapping, loff_t pos, unsigned len,
struct page **pagep, void **fsdata)
{ … }
static int orangefs_write_end(struct file *file, struct address_space *mapping,
loff_t pos, unsigned len, unsigned copied, struct page *page, void *fsdata)
{ … }
static void orangefs_invalidate_folio(struct folio *folio,
size_t offset, size_t length)
{ … }
static bool orangefs_release_folio(struct folio *folio, gfp_t foo)
{ … }
static void orangefs_free_folio(struct folio *folio)
{ … }
static int orangefs_launder_folio(struct folio *folio)
{ … }
static ssize_t orangefs_direct_IO(struct kiocb *iocb,
struct iov_iter *iter)
{ … }
static const struct address_space_operations orangefs_address_operations = …;
vm_fault_t orangefs_page_mkwrite(struct vm_fault *vmf)
{ … }
static int orangefs_setattr_size(struct inode *inode, struct iattr *iattr)
{ … }
int __orangefs_setattr(struct inode *inode, struct iattr *iattr)
{ … }
int __orangefs_setattr_mode(struct dentry *dentry, struct iattr *iattr)
{ … }
int orangefs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
struct iattr *iattr)
{ … }
int orangefs_getattr(struct mnt_idmap *idmap, const struct path *path,
struct kstat *stat, u32 request_mask, unsigned int flags)
{ … }
int orangefs_permission(struct mnt_idmap *idmap,
struct inode *inode, int mask)
{ … }
int orangefs_update_time(struct inode *inode, int flags)
{ … }
static int orangefs_fileattr_get(struct dentry *dentry, struct fileattr *fa)
{ … }
static int orangefs_fileattr_set(struct mnt_idmap *idmap,
struct dentry *dentry, struct fileattr *fa)
{ … }
static const struct inode_operations orangefs_file_inode_operations = …;
static int orangefs_init_iops(struct inode *inode)
{ … }
static inline ino_t orangefs_handle_hash(struct orangefs_object_kref *ref)
{ … }
static int orangefs_set_inode(struct inode *inode, void *data)
{ … }
static int orangefs_test_inode(struct inode *inode, void *data)
{ … }
struct inode *orangefs_iget(struct super_block *sb,
struct orangefs_object_kref *ref)
{ … }
struct inode *orangefs_new_inode(struct super_block *sb, struct inode *dir,
umode_t mode, dev_t dev, struct orangefs_object_kref *ref)
{ … }