vfs_file.c (a0292f3ebe63f8ed7ea28de57751f6bfb9416242) | vfs_file.c (eb497943fa215897f2f60fd28aa6fe52da27ca6c) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * linux/fs/9p/vfs_file.c 4 * 5 * This file contians vfs file ops for 9P2000. 6 * 7 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> 8 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> --- 523 unchanged lines hidden (view full) --- 532 struct page *page = vmf->page; 533 struct file *filp = vmf->vma->vm_file; 534 struct inode *inode = file_inode(filp); 535 536 537 p9_debug(P9_DEBUG_VFS, "page %p fid %lx\n", 538 page, (unsigned long)filp->private_data); 539 | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * linux/fs/9p/vfs_file.c 4 * 5 * This file contians vfs file ops for 9P2000. 6 * 7 * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> 8 * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> --- 523 unchanged lines hidden (view full) --- 532 struct page *page = vmf->page; 533 struct file *filp = vmf->vma->vm_file; 534 struct inode *inode = file_inode(filp); 535 536 537 p9_debug(P9_DEBUG_VFS, "page %p fid %lx\n", 538 page, (unsigned long)filp->private_data); 539 |
540 v9inode = V9FS_I(inode); 541 542 /* Wait for the page to be written to the cache before we allow it to 543 * be modified. We then assume the entire page will need writing back. 544 */ 545#ifdef CONFIG_9P_FSCACHE 546 if (PageFsCache(page) && 547 wait_on_page_fscache_killable(page) < 0) 548 return VM_FAULT_RETRY; 549#endif 550 |
|
540 /* Update file times before taking page lock */ 541 file_update_time(filp); 542 | 551 /* Update file times before taking page lock */ 552 file_update_time(filp); 553 |
543 v9inode = V9FS_I(inode); 544 /* make sure the cache has finished storing the page */ 545 v9fs_fscache_wait_on_page_write(inode, page); | |
546 BUG_ON(!v9inode->writeback_fid); | 554 BUG_ON(!v9inode->writeback_fid); |
547 lock_page(page); | 555 if (lock_page_killable(page) < 0) 556 return VM_FAULT_RETRY; |
548 if (page->mapping != inode->i_mapping) 549 goto out_unlock; 550 wait_for_stable_page(page); 551 552 return VM_FAULT_LOCKED; 553out_unlock: 554 unlock_page(page); 555 return VM_FAULT_NOPAGE; --- 148 unchanged lines hidden --- | 557 if (page->mapping != inode->i_mapping) 558 goto out_unlock; 559 wait_for_stable_page(page); 560 561 return VM_FAULT_LOCKED; 562out_unlock: 563 unlock_page(page); 564 return VM_FAULT_NOPAGE; --- 148 unchanged lines hidden --- |