diff options
Diffstat (limited to 'fs')
-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; |