VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   32 Branches   54 Tags
b24413180f560 (Greg Kroah-Hartman 2017-11-01 15:07:57 +0100  1) // SPDX-License-Identifier: GPL-2.0
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700  2) /*
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700  3)  * Symlink inode operations for Coda filesystem
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700  4)  * Original version: (C) 1996 P. Braam and M. Callahan
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700  5)  * Rewritten for Linux 2.1. (C) 1997 Carnegie Mellon University
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700  6)  * 
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700  7)  * Carnegie Mellon encourages users to contribute improvements to
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700  8)  * the Coda project. Contact Peter Braam (coda@cs.cmu.edu).
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700  9)  */
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 10) 
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 11) #include <linux/types.h>
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 12) #include <linux/kernel.h>
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 13) #include <linux/time.h>
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 14) #include <linux/fs.h>
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 15) #include <linux/stat.h>
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 16) #include <linux/errno.h>
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 17) #include <linux/pagemap.h>
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 18) 
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 19) #include <linux/coda.h>
8fc8b9df83138 (David Howells      2019-07-16 16:28:47 -0700 20) #include "coda_psdev.h"
31a203df9c109 (Al Viro            2011-01-12 16:36:09 -0500 21) #include "coda_linux.h"
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 22) 
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 23) static int coda_symlink_filler(struct file *file, struct page *page)
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 24) {
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 25) 	struct inode *inode = page->mapping->host;
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 26) 	int error;
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 27) 	struct coda_inode_info *cii;
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 28) 	unsigned int len = PAGE_SIZE;
21fc61c73c390 (Al Viro            2015-11-17 01:07:57 -0500 29) 	char *p = page_address(page);
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 30) 
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 31) 	cii = ITOC(inode);
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 32) 
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 33) 	error = venus_readlink(inode->i_sb, &cii->c_fid, p, &len);
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 34) 	if (error)
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 35) 		goto fail;
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 36) 	SetPageUptodate(page);
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 37) 	unlock_page(page);
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 38) 	return 0;
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 39) 
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 40) fail:
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 41) 	SetPageError(page);
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 42) 	unlock_page(page);
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 43) 	return error;
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 44) }
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 45) 
f5e54d6e53a20 (Christoph Hellwig  2006-06-28 04:26:44 -0700 46) const struct address_space_operations coda_symlink_aops = {
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 47) 	.readpage	= coda_symlink_filler,
^1da177e4c3f4 (Linus Torvalds     2005-04-16 15:20:36 -0700 48) };