Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / fs / minix / file.c
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
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 = inode_change_ok(inode, 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 };