diff options
| -rw-r--r-- | fs/gfs2/inode.c | 8 | ||||
| -rw-r--r-- | fs/gfs2/inode.h | 14 | ||||
| -rw-r--r-- | fs/gfs2/ops_file.c | 8 |
3 files changed, 16 insertions, 14 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index 7b277d449155..5a31d426116f 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c | |||
| @@ -137,15 +137,15 @@ void gfs2_set_iop(struct inode *inode) | |||
| 137 | if (S_ISREG(mode)) { | 137 | if (S_ISREG(mode)) { |
| 138 | inode->i_op = &gfs2_file_iops; | 138 | inode->i_op = &gfs2_file_iops; |
| 139 | if (gfs2_localflocks(sdp)) | 139 | if (gfs2_localflocks(sdp)) |
| 140 | inode->i_fop = gfs2_file_fops_nolock; | 140 | inode->i_fop = &gfs2_file_fops_nolock; |
| 141 | else | 141 | else |
| 142 | inode->i_fop = gfs2_file_fops; | 142 | inode->i_fop = &gfs2_file_fops; |
| 143 | } else if (S_ISDIR(mode)) { | 143 | } else if (S_ISDIR(mode)) { |
| 144 | inode->i_op = &gfs2_dir_iops; | 144 | inode->i_op = &gfs2_dir_iops; |
| 145 | if (gfs2_localflocks(sdp)) | 145 | if (gfs2_localflocks(sdp)) |
| 146 | inode->i_fop = gfs2_dir_fops_nolock; | 146 | inode->i_fop = &gfs2_dir_fops_nolock; |
| 147 | else | 147 | else |
| 148 | inode->i_fop = gfs2_dir_fops; | 148 | inode->i_fop = &gfs2_dir_fops; |
| 149 | } else if (S_ISLNK(mode)) { | 149 | } else if (S_ISLNK(mode)) { |
| 150 | inode->i_op = &gfs2_symlink_iops; | 150 | inode->i_op = &gfs2_symlink_iops; |
| 151 | } else { | 151 | } else { |
diff --git a/fs/gfs2/inode.h b/fs/gfs2/inode.h index dca4fee3078b..c30be2b66580 100644 --- a/fs/gfs2/inode.h +++ b/fs/gfs2/inode.h | |||
| @@ -101,21 +101,23 @@ void gfs2_dinode_print(const struct gfs2_inode *ip); | |||
| 101 | extern const struct inode_operations gfs2_file_iops; | 101 | extern const struct inode_operations gfs2_file_iops; |
| 102 | extern const struct inode_operations gfs2_dir_iops; | 102 | extern const struct inode_operations gfs2_dir_iops; |
| 103 | extern const struct inode_operations gfs2_symlink_iops; | 103 | extern const struct inode_operations gfs2_symlink_iops; |
| 104 | extern const struct file_operations *gfs2_file_fops_nolock; | 104 | extern const struct file_operations gfs2_file_fops_nolock; |
| 105 | extern const struct file_operations *gfs2_dir_fops_nolock; | 105 | extern const struct file_operations gfs2_dir_fops_nolock; |
| 106 | 106 | ||
| 107 | extern void gfs2_set_inode_flags(struct inode *inode); | 107 | extern void gfs2_set_inode_flags(struct inode *inode); |
| 108 | 108 | ||
| 109 | #ifdef CONFIG_GFS2_FS_LOCKING_DLM | 109 | #ifdef CONFIG_GFS2_FS_LOCKING_DLM |
| 110 | extern const struct file_operations *gfs2_file_fops; | 110 | extern const struct file_operations gfs2_file_fops; |
| 111 | extern const struct file_operations *gfs2_dir_fops; | 111 | extern const struct file_operations gfs2_dir_fops; |
| 112 | |||
| 112 | static inline int gfs2_localflocks(const struct gfs2_sbd *sdp) | 113 | static inline int gfs2_localflocks(const struct gfs2_sbd *sdp) |
| 113 | { | 114 | { |
| 114 | return sdp->sd_args.ar_localflocks; | 115 | return sdp->sd_args.ar_localflocks; |
| 115 | } | 116 | } |
| 116 | #else /* Single node only */ | 117 | #else /* Single node only */ |
| 117 | #define gfs2_file_fops NULL | 118 | #define gfs2_file_fops gfs2_file_fops_nolock |
| 118 | #define gfs2_dir_fops NULL | 119 | #define gfs2_dir_fops gfs2_dir_fops_nolock |
| 120 | |||
| 119 | static inline int gfs2_localflocks(const struct gfs2_sbd *sdp) | 121 | static inline int gfs2_localflocks(const struct gfs2_sbd *sdp) |
| 120 | { | 122 | { |
| 121 | return 1; | 123 | return 1; |
diff --git a/fs/gfs2/ops_file.c b/fs/gfs2/ops_file.c index 70b9b8548945..101caf3ee861 100644 --- a/fs/gfs2/ops_file.c +++ b/fs/gfs2/ops_file.c | |||
| @@ -705,7 +705,7 @@ static int gfs2_flock(struct file *file, int cmd, struct file_lock *fl) | |||
| 705 | } | 705 | } |
| 706 | } | 706 | } |
| 707 | 707 | ||
| 708 | const struct file_operations *gfs2_file_fops = &(const struct file_operations){ | 708 | const struct file_operations gfs2_file_fops = { |
| 709 | .llseek = gfs2_llseek, | 709 | .llseek = gfs2_llseek, |
| 710 | .read = do_sync_read, | 710 | .read = do_sync_read, |
| 711 | .aio_read = generic_file_aio_read, | 711 | .aio_read = generic_file_aio_read, |
| @@ -723,7 +723,7 @@ const struct file_operations *gfs2_file_fops = &(const struct file_operations){ | |||
| 723 | .setlease = gfs2_setlease, | 723 | .setlease = gfs2_setlease, |
| 724 | }; | 724 | }; |
| 725 | 725 | ||
| 726 | const struct file_operations *gfs2_dir_fops = &(const struct file_operations){ | 726 | const struct file_operations gfs2_dir_fops = { |
| 727 | .readdir = gfs2_readdir, | 727 | .readdir = gfs2_readdir, |
| 728 | .unlocked_ioctl = gfs2_ioctl, | 728 | .unlocked_ioctl = gfs2_ioctl, |
| 729 | .open = gfs2_open, | 729 | .open = gfs2_open, |
| @@ -735,7 +735,7 @@ const struct file_operations *gfs2_dir_fops = &(const struct file_operations){ | |||
| 735 | 735 | ||
| 736 | #endif /* CONFIG_GFS2_FS_LOCKING_DLM */ | 736 | #endif /* CONFIG_GFS2_FS_LOCKING_DLM */ |
| 737 | 737 | ||
| 738 | const struct file_operations *gfs2_file_fops_nolock = &(const struct file_operations){ | 738 | const struct file_operations gfs2_file_fops_nolock = { |
| 739 | .llseek = gfs2_llseek, | 739 | .llseek = gfs2_llseek, |
| 740 | .read = do_sync_read, | 740 | .read = do_sync_read, |
| 741 | .aio_read = generic_file_aio_read, | 741 | .aio_read = generic_file_aio_read, |
| @@ -751,7 +751,7 @@ const struct file_operations *gfs2_file_fops_nolock = &(const struct file_operat | |||
| 751 | .setlease = generic_setlease, | 751 | .setlease = generic_setlease, |
| 752 | }; | 752 | }; |
| 753 | 753 | ||
| 754 | const struct file_operations *gfs2_dir_fops_nolock = &(const struct file_operations){ | 754 | const struct file_operations gfs2_dir_fops_nolock = { |
| 755 | .readdir = gfs2_readdir, | 755 | .readdir = gfs2_readdir, |
| 756 | .unlocked_ioctl = gfs2_ioctl, | 756 | .unlocked_ioctl = gfs2_ioctl, |
| 757 | .open = gfs2_open, | 757 | .open = gfs2_open, |
