~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/fs/ext3/file.c

Version: ~ [ linux-5.16-rc1 ] ~ [ linux-5.15.2 ] ~ [ linux-5.14.18 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.79 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.159 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.217 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.255 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.290 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.292 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  *  linux/fs/ext3/file.c
  3  *
  4  * Copyright (C) 1992, 1993, 1994, 1995
  5  * Remy Card (card@masi.ibp.fr)
  6  * Laboratoire MASI - Institut Blaise Pascal
  7  * Universite Pierre et Marie Curie (Paris VI)
  8  *
  9  *  from
 10  *
 11  *  linux/fs/minix/file.c
 12  *
 13  *  Copyright (C) 1991, 1992  Linus Torvalds
 14  *
 15  *  ext3 fs regular file handling primitives
 16  *
 17  *  64-bit file support on 64-bit platforms by Jakub Jelinek
 18  *      (jj@sunsite.ms.mff.cuni.cz)
 19  */
 20 
 21 #include <linux/quotaops.h>
 22 #include "ext3.h"
 23 #include "xattr.h"
 24 #include "acl.h"
 25 
 26 /*
 27  * Called when an inode is released. Note that this is different
 28  * from ext3_file_open: open gets called at every open, but release
 29  * gets called only when /all/ the files are closed.
 30  */
 31 static int ext3_release_file (struct inode * inode, struct file * filp)
 32 {
 33         if (ext3_test_inode_state(inode, EXT3_STATE_FLUSH_ON_CLOSE)) {
 34                 filemap_flush(inode->i_mapping);
 35                 ext3_clear_inode_state(inode, EXT3_STATE_FLUSH_ON_CLOSE);
 36         }
 37         /* if we are the last writer on the inode, drop the block reservation */
 38         if ((filp->f_mode & FMODE_WRITE) &&
 39                         (atomic_read(&inode->i_writecount) == 1))
 40         {
 41                 mutex_lock(&EXT3_I(inode)->truncate_mutex);
 42                 ext3_discard_reservation(inode);
 43                 mutex_unlock(&EXT3_I(inode)->truncate_mutex);
 44         }
 45         if (is_dx(inode) && filp->private_data)
 46                 ext3_htree_free_dir_info(filp->private_data);
 47 
 48         return 0;
 49 }
 50 
 51 const struct file_operations ext3_file_operations = {
 52         .llseek         = generic_file_llseek,
 53         .read           = new_sync_read,
 54         .write          = new_sync_write,
 55         .read_iter      = generic_file_read_iter,
 56         .write_iter     = generic_file_write_iter,
 57         .unlocked_ioctl = ext3_ioctl,
 58 #ifdef CONFIG_COMPAT
 59         .compat_ioctl   = ext3_compat_ioctl,
 60 #endif
 61         .mmap           = generic_file_mmap,
 62         .open           = dquot_file_open,
 63         .release        = ext3_release_file,
 64         .fsync          = ext3_sync_file,
 65         .splice_read    = generic_file_splice_read,
 66         .splice_write   = iter_file_splice_write,
 67 };
 68 
 69 const struct inode_operations ext3_file_inode_operations = {
 70         .setattr        = ext3_setattr,
 71 #ifdef CONFIG_EXT3_FS_XATTR
 72         .setxattr       = generic_setxattr,
 73         .getxattr       = generic_getxattr,
 74         .listxattr      = ext3_listxattr,
 75         .removexattr    = generic_removexattr,
 76 #endif
 77         .get_acl        = ext3_get_acl,
 78         .set_acl        = ext3_set_acl,
 79         .fiemap         = ext3_fiemap,
 80 };
 81 
 82 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp