aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/ops_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/gfs2/ops_file.c')
-rw-r--r--fs/gfs2/ops_file.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/fs/gfs2/ops_file.c b/fs/gfs2/ops_file.c
index 9bb296717086..3fb1a29f88a6 100644
--- a/fs/gfs2/ops_file.c
+++ b/fs/gfs2/ops_file.c
@@ -561,8 +561,9 @@ static const u32 gfs2_to_iflags[32] = {
561 [gfs2fl_InheritJdata] = IFLAG_INHERITJDATA, 561 [gfs2fl_InheritJdata] = IFLAG_INHERITJDATA,
562}; 562};
563 563
564static int gfs2_get_flags(struct inode *inode, u32 __user *ptr) 564static int gfs2_get_flags(struct file *filp, u32 __user *ptr)
565{ 565{
566 struct inode *inode = filp->f_dentry->d_inode;
566 struct gfs2_inode *ip = inode->u.generic_ip; 567 struct gfs2_inode *ip = inode->u.generic_ip;
567 struct gfs2_holder gh; 568 struct gfs2_holder gh;
568 int error; 569 int error;
@@ -600,8 +601,9 @@ static int gfs2_get_flags(struct inode *inode, u32 __user *ptr)
600 * @mask: Indicates which flags are valid 601 * @mask: Indicates which flags are valid
601 * 602 *
602 */ 603 */
603static int do_gfs2_set_flags(struct inode *inode, u32 reqflags, u32 mask) 604static int do_gfs2_set_flags(struct file *filp, u32 reqflags, u32 mask)
604{ 605{
606 struct inode *inode = filp->f_dentry->d_inode;
605 struct gfs2_inode *ip = inode->u.generic_ip; 607 struct gfs2_inode *ip = inode->u.generic_ip;
606 struct gfs2_sbd *sdp = ip->i_sbd; 608 struct gfs2_sbd *sdp = ip->i_sbd;
607 struct buffer_head *bh; 609 struct buffer_head *bh;
@@ -659,23 +661,22 @@ out:
659 return error; 661 return error;
660} 662}
661 663
662static int gfs2_set_flags(struct inode *inode, u32 __user *ptr) 664static int gfs2_set_flags(struct file *filp, u32 __user *ptr)
663{ 665{
664 u32 iflags, gfsflags; 666 u32 iflags, gfsflags;
665 if (get_user(iflags, ptr)) 667 if (get_user(iflags, ptr))
666 return -EFAULT; 668 return -EFAULT;
667 gfsflags = iflags_cvt(iflags_to_gfs2, iflags); 669 gfsflags = iflags_cvt(iflags_to_gfs2, iflags);
668 return do_gfs2_set_flags(inode, gfsflags, ~0); 670 return do_gfs2_set_flags(filp, gfsflags, ~0);
669} 671}
670 672
671int gfs2_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, 673static long gfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
672 unsigned long arg)
673{ 674{
674 switch(cmd) { 675 switch(cmd) {
675 case IFLAGS_GET_IOC: 676 case IFLAGS_GET_IOC:
676 return gfs2_get_flags(inode, (u32 __user *)arg); 677 return gfs2_get_flags(filp, (u32 __user *)arg);
677 case IFLAGS_SET_IOC: 678 case IFLAGS_SET_IOC:
678 return gfs2_set_flags(inode, (u32 __user *)arg); 679 return gfs2_set_flags(filp, (u32 __user *)arg);
679 } 680 }
680 return -ENOTTY; 681 return -ENOTTY;
681} 682}
@@ -808,7 +809,7 @@ static int gfs2_fsync(struct file *file, struct dentry *dentry, int datasync)
808{ 809{
809 struct gfs2_inode *ip = dentry->d_inode->u.generic_ip; 810 struct gfs2_inode *ip = dentry->d_inode->u.generic_ip;
810 811
811 gfs2_log_flush_glock(ip->i_gl); 812 gfs2_log_flush(ip->i_gl->gl_sbd, ip->i_gl);
812 813
813 return 0; 814 return 0;
814} 815}
@@ -974,7 +975,7 @@ struct file_operations gfs2_file_fops = {
974 .write = generic_file_write, 975 .write = generic_file_write,
975 .writev = generic_file_writev, 976 .writev = generic_file_writev,
976 .aio_write = generic_file_aio_write, 977 .aio_write = generic_file_aio_write,
977 .ioctl = gfs2_ioctl, 978 .unlocked_ioctl = gfs2_ioctl,
978 .mmap = gfs2_mmap, 979 .mmap = gfs2_mmap,
979 .open = gfs2_open, 980 .open = gfs2_open,
980 .release = gfs2_close, 981 .release = gfs2_close,
@@ -988,7 +989,7 @@ struct file_operations gfs2_file_fops = {
988 989
989struct file_operations gfs2_dir_fops = { 990struct file_operations gfs2_dir_fops = {
990 .readdir = gfs2_readdir, 991 .readdir = gfs2_readdir,
991 .ioctl = gfs2_ioctl, 992 .unlocked_ioctl = gfs2_ioctl,
992 .open = gfs2_open, 993 .open = gfs2_open,
993 .release = gfs2_close, 994 .release = gfs2_close,
994 .fsync = gfs2_fsync, 995 .fsync = gfs2_fsync,