1/* 2 * Copyright (C) 2005, 2006 3 * Avishay Traeger (avishay@gmail.com) 4 * Copyright (C) 2008, 2009 5 * Boaz Harrosh <ooo@electrozaur.com> 6 * 7 * Copyrights for code taken from ext2: 8 * Copyright (C) 1992, 1993, 1994, 1995 9 * Remy Card (card@masi.ibp.fr) 10 * Laboratoire MASI - Institut Blaise Pascal 11 * Universite Pierre et Marie Curie (Paris VI) 12 * from 13 * linux/fs/minix/inode.c 14 * Copyright (C) 1991, 1992 Linus Torvalds 15 * 16 * This file is part of exofs. 17 * 18 * exofs is free software; you can redistribute it and/or modify 19 * it under the terms of the GNU General Public License as published by 20 * the Free Software Foundation. Since it is based on ext2, and the only 21 * valid version of GPL for the Linux kernel is version 2, the only valid 22 * version of GPL for exofs is version 2. 23 * 24 * exofs is distributed in the hope that it will be useful, 25 * but WITHOUT ANY WARRANTY; without even the implied warranty of 26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27 * GNU General Public License for more details. 28 * 29 * You should have received a copy of the GNU General Public License 30 * along with exofs; if not, write to the Free Software 31 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 32 */ 33 34#include <linux/namei.h> 35 36#include "exofs.h" 37 38static void *exofs_follow_link(struct dentry *dentry, struct nameidata *nd) 39{ 40 struct exofs_i_info *oi = exofs_i(d_inode(dentry)); 41 42 nd_set_link(nd, (char *)oi->i_data); 43 return NULL; 44} 45 46const struct inode_operations exofs_symlink_inode_operations = { 47 .readlink = generic_readlink, 48 .follow_link = page_follow_link_light, 49 .put_link = page_put_link, 50}; 51 52const struct inode_operations exofs_fast_symlink_inode_operations = { 53 .readlink = generic_readlink, 54 .follow_link = exofs_follow_link, 55}; 56