cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

file.c (1230B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 *  linux/fs/minix/file.c
      4 *
      5 *  Copyright (C) 1991, 1992 Linus Torvalds
      6 *
      7 *  minix regular file handling primitives
      8 */
      9
     10#include "minix.h"
     11
     12/*
     13 * We have mostly NULLs here: the current defaults are OK for
     14 * the minix filesystem.
     15 */
     16const struct file_operations minix_file_operations = {
     17	.llseek		= generic_file_llseek,
     18	.read_iter	= generic_file_read_iter,
     19	.write_iter	= generic_file_write_iter,
     20	.mmap		= generic_file_mmap,
     21	.fsync		= generic_file_fsync,
     22	.splice_read	= generic_file_splice_read,
     23};
     24
     25static int minix_setattr(struct user_namespace *mnt_userns,
     26			 struct dentry *dentry, struct iattr *attr)
     27{
     28	struct inode *inode = d_inode(dentry);
     29	int error;
     30
     31	error = setattr_prepare(&init_user_ns, dentry, attr);
     32	if (error)
     33		return error;
     34
     35	if ((attr->ia_valid & ATTR_SIZE) &&
     36	    attr->ia_size != i_size_read(inode)) {
     37		error = inode_newsize_ok(inode, attr->ia_size);
     38		if (error)
     39			return error;
     40
     41		truncate_setsize(inode, attr->ia_size);
     42		minix_truncate(inode);
     43	}
     44
     45	setattr_copy(&init_user_ns, inode, attr);
     46	mark_inode_dirty(inode);
     47	return 0;
     48}
     49
     50const struct inode_operations minix_file_inode_operations = {
     51	.setattr	= minix_setattr,
     52	.getattr	= minix_getattr,
     53};