Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at b1404069f64457c94de241738fdca142c2e5698f 81 lines 1.9 kB view raw
1/* 2 * Copyright (c) 2000-2002,2005-2006 Silicon Graphics, Inc. 3 * All Rights Reserved. 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License as 7 * published by the Free Software Foundation. 8 * 9 * This program is distributed in the hope that it would be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write the Free Software Foundation, 16 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 17 */ 18#include "xfs.h" 19#include "xfs_vnodeops.h" 20#include "xfs_bmap_btree.h" 21#include "xfs_inode.h" 22 23int fs_noerr(void) { return 0; } 24int fs_nosys(void) { return ENOSYS; } 25void fs_noval(void) { return; } 26 27void 28xfs_tosspages( 29 xfs_inode_t *ip, 30 xfs_off_t first, 31 xfs_off_t last, 32 int fiopt) 33{ 34 struct address_space *mapping = ip->i_vnode->i_mapping; 35 36 if (mapping->nrpages) 37 truncate_inode_pages(mapping, first); 38} 39 40int 41xfs_flushinval_pages( 42 xfs_inode_t *ip, 43 xfs_off_t first, 44 xfs_off_t last, 45 int fiopt) 46{ 47 struct address_space *mapping = ip->i_vnode->i_mapping; 48 int ret = 0; 49 50 if (mapping->nrpages) { 51 xfs_iflags_clear(ip, XFS_ITRUNCATED); 52 ret = filemap_write_and_wait(mapping); 53 if (!ret) 54 truncate_inode_pages(mapping, first); 55 } 56 return ret; 57} 58 59int 60xfs_flush_pages( 61 xfs_inode_t *ip, 62 xfs_off_t first, 63 xfs_off_t last, 64 uint64_t flags, 65 int fiopt) 66{ 67 struct address_space *mapping = ip->i_vnode->i_mapping; 68 int ret = 0; 69 int ret2; 70 71 if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) { 72 xfs_iflags_clear(ip, XFS_ITRUNCATED); 73 ret = filemap_fdatawrite(mapping); 74 if (flags & XFS_B_ASYNC) 75 return ret; 76 ret2 = filemap_fdatawait(mapping); 77 if (!ret) 78 ret = ret2; 79 } 80 return ret; 81}