linux/fs/orangefs/inode.c

// SPDX-License-Identifier: GPL-2.0
/*
 * (C) 2001 Clemson University and The University of Chicago
 * Copyright 2018 Omnibond Systems, L.L.C.
 *
 * See COPYING in top-level directory.
 */

/*
 *  Linux VFS inode operations.
 */

#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)
{}

/** ORANGEFS2 implementation of address space operations */
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)
{}

/*
 * Change attributes of an object referenced by dentry.
 */
int orangefs_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
		     struct iattr *iattr)
{}

/*
 * Obtain attributes of an object given a dentry
 */
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)
{}

/* ORANGEFS2 implementation of VFS inode operations for files */
static const struct inode_operations orangefs_file_inode_operations =;

static int orangefs_init_iops(struct inode *inode)
{}

/*
 * Given an ORANGEFS object identifier (fsid, handle), convert it into
 * a ino_t type that will be used as a hash-index from where the handle will
 * be searched for in the VFS hash table of inodes.
 */
static inline ino_t orangefs_handle_hash(struct orangefs_object_kref *ref)
{}

/*
 * Called to set up an inode from iget5_locked.
 */
static int orangefs_set_inode(struct inode *inode, void *data)
{}

/*
 * Called to determine if handles match.
 */
static int orangefs_test_inode(struct inode *inode, void *data)
{}

/*
 * Front-end to lookup the inode-cache maintained by the VFS using the ORANGEFS
 * file handle.
 *
 * @sb: the file system super block instance.
 * @ref: The ORANGEFS object for which we are trying to locate an inode.
 */
struct inode *orangefs_iget(struct super_block *sb,
		struct orangefs_object_kref *ref)
{}

/*
 * Allocate an inode for a newly created file and insert it into the inode hash.
 */
struct inode *orangefs_new_inode(struct super_block *sb, struct inode *dir,
		umode_t mode, dev_t dev, struct orangefs_object_kref *ref)
{}