2008-10-27 20:04:34 +03:00
/*
* Copyright ( C ) 2005 , 2006
2009-06-14 18:23:09 +04:00
* Avishay Traeger ( avishay @ gmail . com )
2008-10-27 20:04:34 +03:00
* Copyright ( C ) 2008 , 2009
* Boaz Harrosh < bharrosh @ panasas . com >
*
* Copyrights for code taken from ext2 :
* Copyright ( C ) 1992 , 1993 , 1994 , 1995
* Remy Card ( card @ masi . ibp . fr )
* Laboratoire MASI - Institut Blaise Pascal
* Universite Pierre et Marie Curie ( Paris VI )
* from
* linux / fs / minix / inode . c
* Copyright ( C ) 1991 , 1992 Linus Torvalds
*
* This file is part of exofs .
*
* exofs is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation . Since it is based on ext2 , and the only
* valid version of GPL for the Linux kernel is version 2 , the only valid
* version of GPL for exofs is version 2.
*
* exofs is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with exofs ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin St , Fifth Floor , Boston , MA 02110 - 1301 USA
*/
# include <linux/namei.h>
# include "exofs.h"
static void * exofs_follow_link ( struct dentry * dentry , struct nameidata * nd )
{
struct exofs_i_info * oi = exofs_i ( dentry - > d_inode ) ;
nd_set_link ( nd , ( char * ) oi - > i_data ) ;
return NULL ;
}
const struct inode_operations exofs_symlink_inode_operations = {
. readlink = generic_readlink ,
. follow_link = page_follow_link_light ,
. put_link = page_put_link ,
} ;
const struct inode_operations exofs_fast_symlink_inode_operations = {
. readlink = generic_readlink ,
. follow_link = exofs_follow_link ,
} ;