Commit a2126997 authored by Alexander Viro's avatar Alexander Viro Committed by Linus Torvalds

[PATCH] symlink 4/9: simple filesystems

cases that can simply reuse ext2 helpers (page_follow_link_light() and
page_put_link()).
parent ffc9a3c3
......@@ -78,7 +78,8 @@ struct address_space_operations affs_symlink_aops = {
};
struct inode_operations affs_symlink_inode_operations = {
.readlink = page_readlink,
.follow_link = page_follow_link,
.readlink = generic_readlink,
.follow_link = page_follow_link_light,
.put_link = page_put_link,
.setattr = affs_notify_change,
};
......@@ -17,8 +17,9 @@ inline int coda_fideq(struct CodaFid *fid1, struct CodaFid *fid2)
}
static struct inode_operations coda_symlink_inode_operations = {
.readlink = page_readlink,
.follow_link = page_follow_link,
.readlink = generic_readlink,
.follow_link = page_follow_link_light,
.put_link = page_put_link,
.setattr = coda_setattr,
};
......
......@@ -20,24 +20,20 @@
#include <linux/fs.h>
#include <linux/jbd.h>
#include <linux/ext3_fs.h>
#include <linux/namei.h>
#include "xattr.h"
static int
ext3_readlink(struct dentry *dentry, char __user *buffer, int buflen)
{
struct ext3_inode_info *ei = EXT3_I(dentry->d_inode);
return vfs_readlink(dentry, buffer, buflen, (char*)ei->i_data);
}
static int ext3_follow_link(struct dentry *dentry, struct nameidata *nd)
{
struct ext3_inode_info *ei = EXT3_I(dentry->d_inode);
return vfs_follow_link(nd, (char*)ei->i_data);
nd_set_link(nd, (char*)ei->i_data);
return 0;
}
struct inode_operations ext3_symlink_inode_operations = {
.readlink = page_readlink,
.follow_link = page_follow_link,
.readlink = generic_readlink,
.follow_link = page_follow_link_light,
.put_link = page_put_link,
.setxattr = ext3_setxattr,
.getxattr = ext3_getxattr,
.listxattr = ext3_listxattr,
......@@ -45,8 +41,8 @@ struct inode_operations ext3_symlink_inode_operations = {
};
struct inode_operations ext3_fast_symlink_inode_operations = {
.readlink = ext3_readlink, /* BKL not held. Don't need */
.follow_link = ext3_follow_link, /* BKL not held. Don't need */
.readlink = generic_readlink,
.follow_link = ext3_follow_link,
.setxattr = ext3_setxattr,
.getxattr = ext3_getxattr,
.listxattr = ext3_listxattr,
......
......@@ -343,8 +343,9 @@ static struct address_space_operations minix_aops = {
};
static struct inode_operations minix_symlink_inode_operations = {
.readlink = page_readlink,
.follow_link = page_follow_link,
.readlink = generic_readlink,
.follow_link = page_follow_link_light,
.put_link = page_put_link,
.getattr = minix_getattr,
};
......
......@@ -1389,8 +1389,9 @@ struct inode_operations reiserfs_dir_inode_operations = {
* stuff added
*/
struct inode_operations reiserfs_symlink_inode_operations = {
.readlink = page_readlink,
.follow_link = page_follow_link,
.readlink = generic_readlink,
.follow_link = page_follow_link_light,
.put_link = page_put_link,
.setattr = reiserfs_setattr,
.setxattr = reiserfs_setxattr,
.getxattr = reiserfs_getxattr,
......
......@@ -142,8 +142,9 @@ static inline void write3byte(struct sysv_sb_info *sbi,
}
static struct inode_operations sysv_symlink_inode_operations = {
.readlink = page_readlink,
.follow_link = page_follow_link,
.readlink = generic_readlink,
.follow_link = page_follow_link_light,
.put_link = page_put_link,
.getattr = sysv_getattr,
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment