root/fs/minix/file.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. minix_setattr

   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  */
  16 const 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 
  25 static int minix_setattr(struct dentry *dentry, struct iattr *attr)
  26 {
  27         struct inode *inode = d_inode(dentry);
  28         int error;
  29 
  30         error = setattr_prepare(dentry, attr);
  31         if (error)
  32                 return error;
  33 
  34         if ((attr->ia_valid & ATTR_SIZE) &&
  35             attr->ia_size != i_size_read(inode)) {
  36                 error = inode_newsize_ok(inode, attr->ia_size);
  37                 if (error)
  38                         return error;
  39 
  40                 truncate_setsize(inode, attr->ia_size);
  41                 minix_truncate(inode);
  42         }
  43 
  44         setattr_copy(inode, attr);
  45         mark_inode_dirty(inode);
  46         return 0;
  47 }
  48 
  49 const struct inode_operations minix_file_inode_operations = {
  50         .setattr        = minix_setattr,
  51         .getattr        = minix_getattr,
  52 };

/* [<][>][^][v][top][bottom][index][help] */