diff options
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_aops.c | 1 | ||||
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_file.c | 7 | ||||
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_ioctl32.c | 29 | ||||
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_ioctl32.h | 6 | ||||
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_super.c | 3 | ||||
| -rw-r--r-- | fs/xfs/xfs_iomap.c | 4 |
6 files changed, 31 insertions, 19 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 9278e9aba9ba..93ce257cd149 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c | |||
| @@ -886,7 +886,6 @@ xfs_page_state_convert( | |||
| 886 | SetPageUptodate(page); | 886 | SetPageUptodate(page); |
| 887 | 887 | ||
| 888 | if (startio) { | 888 | if (startio) { |
| 889 | WARN_ON(page_dirty); | ||
| 890 | xfs_submit_page(page, wbc, bh_arr, cnt, 0, !page_dirty); | 889 | xfs_submit_page(page, wbc, bh_arr, cnt, 0, !page_dirty); |
| 891 | } | 890 | } |
| 892 | 891 | ||
diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index d0d412afd261..24fa3b101b93 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c | |||
| @@ -565,7 +565,7 @@ struct file_operations linvfs_file_operations = { | |||
| 565 | .sendfile = linvfs_sendfile, | 565 | .sendfile = linvfs_sendfile, |
| 566 | .unlocked_ioctl = linvfs_ioctl, | 566 | .unlocked_ioctl = linvfs_ioctl, |
| 567 | #ifdef CONFIG_COMPAT | 567 | #ifdef CONFIG_COMPAT |
| 568 | .compat_ioctl = xfs_compat_ioctl, | 568 | .compat_ioctl = linvfs_compat_ioctl, |
| 569 | #endif | 569 | #endif |
| 570 | .mmap = linvfs_file_mmap, | 570 | .mmap = linvfs_file_mmap, |
| 571 | .open = linvfs_open, | 571 | .open = linvfs_open, |
| @@ -587,7 +587,7 @@ struct file_operations linvfs_invis_file_operations = { | |||
| 587 | .sendfile = linvfs_sendfile, | 587 | .sendfile = linvfs_sendfile, |
| 588 | .unlocked_ioctl = linvfs_ioctl_invis, | 588 | .unlocked_ioctl = linvfs_ioctl_invis, |
| 589 | #ifdef CONFIG_COMPAT | 589 | #ifdef CONFIG_COMPAT |
| 590 | .compat_ioctl = xfs_compat_invis_ioctl, | 590 | .compat_ioctl = linvfs_compat_invis_ioctl, |
| 591 | #endif | 591 | #endif |
| 592 | .mmap = linvfs_file_mmap, | 592 | .mmap = linvfs_file_mmap, |
| 593 | .open = linvfs_open, | 593 | .open = linvfs_open, |
| @@ -600,6 +600,9 @@ struct file_operations linvfs_dir_operations = { | |||
| 600 | .read = generic_read_dir, | 600 | .read = generic_read_dir, |
| 601 | .readdir = linvfs_readdir, | 601 | .readdir = linvfs_readdir, |
| 602 | .unlocked_ioctl = linvfs_ioctl, | 602 | .unlocked_ioctl = linvfs_ioctl, |
| 603 | #ifdef CONFIG_COMPAT | ||
| 604 | .compat_ioctl = linvfs_compat_ioctl, | ||
| 605 | #endif | ||
| 603 | .fsync = linvfs_fsync, | 606 | .fsync = linvfs_fsync, |
| 604 | }; | 607 | }; |
| 605 | 608 | ||
diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c index 7a12c83184f5..0f8f1384eb36 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.c +++ b/fs/xfs/linux-2.6/xfs_ioctl32.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2004 Silicon Graphics, Inc. All Rights Reserved. | 2 | * Copyright (c) 2004-2005 Silicon Graphics, Inc. All Rights Reserved. |
| 3 | * | 3 | * |
| 4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
| 5 | * under the terms of version 2 of the GNU General Public License as | 5 | * under the terms of version 2 of the GNU General Public License as |
| @@ -58,8 +58,9 @@ typedef struct xfs_fsop_bulkreq32 { | |||
| 58 | __s32 ocount; /* output count pointer */ | 58 | __s32 ocount; /* output count pointer */ |
| 59 | } xfs_fsop_bulkreq32_t; | 59 | } xfs_fsop_bulkreq32_t; |
| 60 | 60 | ||
| 61 | static unsigned long | 61 | STATIC unsigned long |
| 62 | xfs_ioctl32_bulkstat(unsigned long arg) | 62 | xfs_ioctl32_bulkstat( |
| 63 | unsigned long arg) | ||
| 63 | { | 64 | { |
| 64 | xfs_fsop_bulkreq32_t __user *p32 = (void __user *)arg; | 65 | xfs_fsop_bulkreq32_t __user *p32 = (void __user *)arg; |
| 65 | xfs_fsop_bulkreq_t __user *p = compat_alloc_user_space(sizeof(*p)); | 66 | xfs_fsop_bulkreq_t __user *p = compat_alloc_user_space(sizeof(*p)); |
| @@ -78,11 +79,11 @@ xfs_ioctl32_bulkstat(unsigned long arg) | |||
| 78 | } | 79 | } |
| 79 | #endif | 80 | #endif |
| 80 | 81 | ||
| 81 | static long | 82 | STATIC long |
| 82 | __xfs_compat_ioctl(int mode, struct file *f, unsigned cmd, unsigned long arg) | 83 | __linvfs_compat_ioctl(int mode, struct file *f, unsigned cmd, unsigned long arg) |
| 83 | { | 84 | { |
| 84 | int error; | 85 | int error; |
| 85 | struct inode *inode = f->f_dentry->d_inode; | 86 | struct inode *inode = f->f_dentry->d_inode; |
| 86 | vnode_t *vp = LINVFS_GET_VP(inode); | 87 | vnode_t *vp = LINVFS_GET_VP(inode); |
| 87 | 88 | ||
| 88 | switch (cmd) { | 89 | switch (cmd) { |
| @@ -152,12 +153,20 @@ __xfs_compat_ioctl(int mode, struct file *f, unsigned cmd, unsigned long arg) | |||
| 152 | return error; | 153 | return error; |
| 153 | } | 154 | } |
| 154 | 155 | ||
| 155 | long xfs_compat_ioctl(struct file *f, unsigned cmd, unsigned long arg) | 156 | long |
| 157 | linvfs_compat_ioctl( | ||
| 158 | struct file *f, | ||
| 159 | unsigned cmd, | ||
| 160 | unsigned long arg) | ||
| 156 | { | 161 | { |
| 157 | return __xfs_compat_ioctl(0, f, cmd, arg); | 162 | return __linvfs_compat_ioctl(0, f, cmd, arg); |
| 158 | } | 163 | } |
| 159 | 164 | ||
| 160 | long xfs_compat_invis_ioctl(struct file *f, unsigned cmd, unsigned long arg) | 165 | long |
| 166 | linvfs_compat_invis_ioctl( | ||
| 167 | struct file *f, | ||
| 168 | unsigned cmd, | ||
| 169 | unsigned long arg) | ||
| 161 | { | 170 | { |
| 162 | return __xfs_compat_ioctl(IO_INVIS, f, cmd, arg); | 171 | return __linvfs_compat_ioctl(IO_INVIS, f, cmd, arg); |
| 163 | } | 172 | } |
diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.h b/fs/xfs/linux-2.6/xfs_ioctl32.h index 779f69a48116..c874793a1dc9 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.h +++ b/fs/xfs/linux-2.6/xfs_ioctl32.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2004 Silicon Graphics, Inc. All Rights Reserved. | 2 | * Copyright (c) 2004-2005 Silicon Graphics, Inc. All Rights Reserved. |
| 3 | * | 3 | * |
| 4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
| 5 | * under the terms of version 2 of the GNU General Public License as | 5 | * under the terms of version 2 of the GNU General Public License as |
| @@ -30,5 +30,5 @@ | |||
| 30 | * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ | 30 | * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ |
| 31 | */ | 31 | */ |
| 32 | 32 | ||
| 33 | long xfs_compat_ioctl(struct file *f, unsigned cmd, unsigned long arg); | 33 | long linvfs_compat_ioctl(struct file *f, unsigned cmd, unsigned long arg); |
| 34 | long xfs_compat_invis_ioctl(struct file *f, unsigned cmd, unsigned long arg); | 34 | long linvfs_compat_invis_ioctl(struct file *f, unsigned cmd, unsigned long arg); |
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 53dc658cafa6..455e2b2fb964 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved. | 2 | * Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved. |
| 3 | * | 3 | * |
| 4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
| 5 | * under the terms of version 2 of the GNU General Public License as | 5 | * under the terms of version 2 of the GNU General Public License as |
| @@ -66,7 +66,6 @@ | |||
| 66 | #include "xfs_buf_item.h" | 66 | #include "xfs_buf_item.h" |
| 67 | #include "xfs_utils.h" | 67 | #include "xfs_utils.h" |
| 68 | #include "xfs_version.h" | 68 | #include "xfs_version.h" |
| 69 | #include "xfs_ioctl32.h" | ||
| 70 | 69 | ||
| 71 | #include <linux/namei.h> | 70 | #include <linux/namei.h> |
| 72 | #include <linux/init.h> | 71 | #include <linux/init.h> |
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index 991f8a61f7c4..469e1a7939d4 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c | |||
| @@ -278,7 +278,9 @@ phase2: | |||
| 278 | switch (flags & (BMAPI_WRITE|BMAPI_ALLOCATE|BMAPI_UNWRITTEN)) { | 278 | switch (flags & (BMAPI_WRITE|BMAPI_ALLOCATE|BMAPI_UNWRITTEN)) { |
| 279 | case BMAPI_WRITE: | 279 | case BMAPI_WRITE: |
| 280 | /* If we found an extent, return it */ | 280 | /* If we found an extent, return it */ |
| 281 | if (nimaps && (imap.br_startblock != HOLESTARTBLOCK)) { | 281 | if (nimaps && |
| 282 | (imap.br_startblock != HOLESTARTBLOCK) && | ||
| 283 | (imap.br_startblock != DELAYSTARTBLOCK)) { | ||
| 282 | xfs_iomap_map_trace(XFS_IOMAP_WRITE_MAP, io, | 284 | xfs_iomap_map_trace(XFS_IOMAP_WRITE_MAP, io, |
| 283 | offset, count, iomapp, &imap, flags); | 285 | offset, count, iomapp, &imap, flags); |
| 284 | break; | 286 | break; |
