| To: | Stephen Hemminger <shemminger@xxxxxxxx> |
|---|---|
| Subject: | Re: 2.6.10-rc3-mm1 FIONREAD breakge |
| From: | Andrew Morton <akpm@xxxxxxxx> |
| Date: | Fri, 17 Dec 2004 13:26:48 -0800 |
| Cc: | akpm@xxxxxxxxx, cliffw@xxxxxxxx, netdev@xxxxxxxxxxx |
| In-reply-to: | <20041217130716.1464a068@xxxxxxxxxxxxxxxxx> |
| References: | <20041217130716.1464a068@xxxxxxxxxxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
Stephen Hemminger <shemminger@xxxxxxxx> wrote:
>
> Latest -mm kernel broke FIONREAD on UDP sockets.
yup, you'll need this:
--- 25/fs/ioctl.c~ioctl-cleanups-broke-fionread-et-al 2004-12-13
11:12:37.687951760 -0800
+++ 25-akpm/fs/ioctl.c 2004-12-13 11:12:37.690951304 -0800
@@ -91,10 +91,8 @@ asmlinkage long sys_ioctl(unsigned int f
int block;
int res;
- if (!S_ISREG(inode->i_mode)) {
- error = -ENOTTY;
- goto done;
- }
+ if (!S_ISREG(inode->i_mode))
+ break;
/* do we support this mess? */
if (!mapping->a_ops->bmap) {
error = -EINVAL;
@@ -112,19 +110,15 @@ asmlinkage long sys_ioctl(unsigned int f
goto done;
}
case FIGETBSZ:
- if (!S_ISREG(inode->i_mode)) {
- error = -ENOTTY;
- goto done;
- }
+ if (!S_ISREG(inode->i_mode))
+ break;
error = -EBADF;
if (inode->i_sb)
error = put_user(inode->i_sb->s_blocksize, p);
goto done;
case FIONREAD:
- if (!S_ISREG(inode->i_mode)) {
- error = -ENOTTY;
- goto done;
- }
+ if (!S_ISREG(inode->i_mode))
+ break;
error = put_user(i_size_read(inode) - filp->f_pos, p);
goto done;
}
_
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | 2.6.10-rc3-mm1 FIONREAD breakge, Stephen Hemminger |
|---|---|
| Next by Date: | LLTX and netif_stop_queue, Roland Dreier |
| Previous by Thread: | 2.6.10-rc3-mm1 FIONREAD breakge, Stephen Hemminger |
| Next by Thread: | LLTX and netif_stop_queue, Roland Dreier |
| Indexes: | [Date] [Thread] [Top] [All Lists] |