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