GFS2: cleanup file_operations mess

Remove the weird pointer to file_operations mess and replace it with
straight-forward defining of the lockinginstance names to the _nolock
variants.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
Christoph Hellwig 2009-04-07 19:42:17 +02:00 committed by Steven Whitehouse
parent a228df6339
commit 10d2198805
3 changed files with 16 additions and 14 deletions

View File

@ -137,15 +137,15 @@ void gfs2_set_iop(struct inode *inode)
if (S_ISREG(mode)) { if (S_ISREG(mode)) {
inode->i_op = &gfs2_file_iops; inode->i_op = &gfs2_file_iops;
if (gfs2_localflocks(sdp)) if (gfs2_localflocks(sdp))
inode->i_fop = gfs2_file_fops_nolock; inode->i_fop = &gfs2_file_fops_nolock;
else else
inode->i_fop = gfs2_file_fops; inode->i_fop = &gfs2_file_fops;
} else if (S_ISDIR(mode)) { } else if (S_ISDIR(mode)) {
inode->i_op = &gfs2_dir_iops; inode->i_op = &gfs2_dir_iops;
if (gfs2_localflocks(sdp)) if (gfs2_localflocks(sdp))
inode->i_fop = gfs2_dir_fops_nolock; inode->i_fop = &gfs2_dir_fops_nolock;
else else
inode->i_fop = gfs2_dir_fops; inode->i_fop = &gfs2_dir_fops;
} else if (S_ISLNK(mode)) { } else if (S_ISLNK(mode)) {
inode->i_op = &gfs2_symlink_iops; inode->i_op = &gfs2_symlink_iops;
} else { } else {

View File

@ -101,21 +101,23 @@ void gfs2_dinode_print(const struct gfs2_inode *ip);
extern const struct inode_operations gfs2_file_iops; extern const struct inode_operations gfs2_file_iops;
extern const struct inode_operations gfs2_dir_iops; extern const struct inode_operations gfs2_dir_iops;
extern const struct inode_operations gfs2_symlink_iops; extern const struct inode_operations gfs2_symlink_iops;
extern const struct file_operations *gfs2_file_fops_nolock; extern const struct file_operations gfs2_file_fops_nolock;
extern const struct file_operations *gfs2_dir_fops_nolock; extern const struct file_operations gfs2_dir_fops_nolock;
extern void gfs2_set_inode_flags(struct inode *inode); extern void gfs2_set_inode_flags(struct inode *inode);
#ifdef CONFIG_GFS2_FS_LOCKING_DLM #ifdef CONFIG_GFS2_FS_LOCKING_DLM
extern const struct file_operations *gfs2_file_fops; extern const struct file_operations gfs2_file_fops;
extern const struct file_operations *gfs2_dir_fops; extern const struct file_operations gfs2_dir_fops;
static inline int gfs2_localflocks(const struct gfs2_sbd *sdp) static inline int gfs2_localflocks(const struct gfs2_sbd *sdp)
{ {
return sdp->sd_args.ar_localflocks; return sdp->sd_args.ar_localflocks;
} }
#else /* Single node only */ #else /* Single node only */
#define gfs2_file_fops NULL #define gfs2_file_fops gfs2_file_fops_nolock
#define gfs2_dir_fops NULL #define gfs2_dir_fops gfs2_dir_fops_nolock
static inline int gfs2_localflocks(const struct gfs2_sbd *sdp) static inline int gfs2_localflocks(const struct gfs2_sbd *sdp)
{ {
return 1; return 1;

View File

@ -705,7 +705,7 @@ static int gfs2_flock(struct file *file, int cmd, struct file_lock *fl)
} }
} }
const struct file_operations *gfs2_file_fops = &(const struct file_operations){ const struct file_operations gfs2_file_fops = {
.llseek = gfs2_llseek, .llseek = gfs2_llseek,
.read = do_sync_read, .read = do_sync_read,
.aio_read = generic_file_aio_read, .aio_read = generic_file_aio_read,
@ -723,7 +723,7 @@ const struct file_operations *gfs2_file_fops = &(const struct file_operations){
.setlease = gfs2_setlease, .setlease = gfs2_setlease,
}; };
const struct file_operations *gfs2_dir_fops = &(const struct file_operations){ const struct file_operations gfs2_dir_fops = {
.readdir = gfs2_readdir, .readdir = gfs2_readdir,
.unlocked_ioctl = gfs2_ioctl, .unlocked_ioctl = gfs2_ioctl,
.open = gfs2_open, .open = gfs2_open,
@ -735,7 +735,7 @@ const struct file_operations *gfs2_dir_fops = &(const struct file_operations){
#endif /* CONFIG_GFS2_FS_LOCKING_DLM */ #endif /* CONFIG_GFS2_FS_LOCKING_DLM */
const struct file_operations *gfs2_file_fops_nolock = &(const struct file_operations){ const struct file_operations gfs2_file_fops_nolock = {
.llseek = gfs2_llseek, .llseek = gfs2_llseek,
.read = do_sync_read, .read = do_sync_read,
.aio_read = generic_file_aio_read, .aio_read = generic_file_aio_read,
@ -751,7 +751,7 @@ const struct file_operations *gfs2_file_fops_nolock = &(const struct file_operat
.setlease = generic_setlease, .setlease = generic_setlease,
}; };
const struct file_operations *gfs2_dir_fops_nolock = &(const struct file_operations){ const struct file_operations gfs2_dir_fops_nolock = {
.readdir = gfs2_readdir, .readdir = gfs2_readdir,
.unlocked_ioctl = gfs2_ioctl, .unlocked_ioctl = gfs2_ioctl,
.open = gfs2_open, .open = gfs2_open,