linux/fs/exfat/inode.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C) 2012-2013 Samsung Electronics Co., Ltd.
 */

#include <linux/init.h>
#include <linux/buffer_head.h>
#include <linux/mpage.h>
#include <linux/bio.h>
#include <linux/blkdev.h>
#include <linux/time.h>
#include <linux/writeback.h>
#include <linux/uio.h>
#include <linux/random.h>
#include <linux/iversion.h>

#include "exfat_raw.h"
#include "exfat_fs.h"

int __exfat_write_inode(struct inode *inode, int sync)
{}

int exfat_write_inode(struct inode *inode, struct writeback_control *wbc)
{}

void exfat_sync_inode(struct inode *inode)
{}

/*
 * Input: inode, (logical) clu_offset, target allocation area
 * Output: errcode, cluster number
 * *clu = (~0), if it's unable to allocate a new cluster
 */
static int exfat_map_cluster(struct inode *inode, unsigned int clu_offset,
		unsigned int *clu, int create)
{}

static int exfat_map_new_buffer(struct exfat_inode_info *ei,
		struct buffer_head *bh, loff_t pos)
{}

static int exfat_get_block(struct inode *inode, sector_t iblock,
		struct buffer_head *bh_result, int create)
{}

static int exfat_read_folio(struct file *file, struct folio *folio)
{}

static void exfat_readahead(struct readahead_control *rac)
{}

static int exfat_writepages(struct address_space *mapping,
		struct writeback_control *wbc)
{}

static void exfat_write_failed(struct address_space *mapping, loff_t to)
{}

static int exfat_write_begin(struct file *file, struct address_space *mapping,
		loff_t pos, unsigned int len,
		struct page **pagep, void **fsdata)
{}

static int exfat_write_end(struct file *file, struct address_space *mapping,
		loff_t pos, unsigned int len, unsigned int copied,
		struct page *pagep, void *fsdata)
{}

static ssize_t exfat_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
{}

static sector_t exfat_aop_bmap(struct address_space *mapping, sector_t block)
{}

/*
 * exfat_block_truncate_page() zeroes out a mapping from file offset `from'
 * up to the end of the block which corresponds to `from'.
 * This is required during truncate to physically zeroout the tail end
 * of that block so it doesn't yield old data if the file is later grown.
 * Also, avoid causing failure from fsx for cases of "data past EOF"
 */
int exfat_block_truncate_page(struct inode *inode, loff_t from)
{}

static const struct address_space_operations exfat_aops =;

static inline unsigned long exfat_hash(loff_t i_pos)
{}

void exfat_hash_inode(struct inode *inode, loff_t i_pos)
{}

void exfat_unhash_inode(struct inode *inode)
{}

struct inode *exfat_iget(struct super_block *sb, loff_t i_pos)
{}

/* doesn't deal with root inode */
static int exfat_fill_inode(struct inode *inode, struct exfat_dir_entry *info)
{}

struct inode *exfat_build_inode(struct super_block *sb,
		struct exfat_dir_entry *info, loff_t i_pos)
{}

void exfat_evict_inode(struct inode *inode)
{}