* 2.6.10-rc3-mm1 FIONREAD breakge
@ 2004-12-17 21:07 Stephen Hemminger
2004-12-17 21:26 ` Andrew Morton
0 siblings, 1 reply; 2+ messages in thread
From: Stephen Hemminger @ 2004-12-17 21:07 UTC (permalink / raw)
To: Andrew Morton, cliff white, netdev
Latest -mm kernel broke FIONREAD on UDP sockets. This stopped STP in it's tracks
because then names don't resolve.
The following works on 2.6.10-rc3 but breaks on 2.6.10-rc3-mm1
=====================================
/* Did FIONREAD break on UDP? */
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc, char **argv)
{
int s;
static struct sockaddr_in sin = { AF_INET };
int len;
s = socket(AF_INET, SOCK_DGRAM, 0);
if (bind(s, (struct sockaddr *) &sin, sizeof(sin)) < 0)
perror("bind");
len = sizeof(sin);
getsockname(s, (struct sockaddr *) &sin, &len);
printf("Bound to %s.%d\n",
inet_ntoa(sin.sin_addr), ntohs(sin.sin_port));
for(;;) {
unsigned long count;
fflush(stdout);
if (ioctl(s, FIONREAD, &count) < 0)
perror("ioctl(FIONREAD)");
printf("nread = %ld\n", count);
sleep(5);
}
}
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: 2.6.10-rc3-mm1 FIONREAD breakge
2004-12-17 21:07 2.6.10-rc3-mm1 FIONREAD breakge Stephen Hemminger
@ 2004-12-17 21:26 ` Andrew Morton
0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2004-12-17 21:26 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: akpm, cliffw, netdev
Stephen Hemminger <shemminger@osdl.org> 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;
}
_
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-12-17 21:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-12-17 21:07 2.6.10-rc3-mm1 FIONREAD breakge Stephen Hemminger
2004-12-17 21:26 ` Andrew Morton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).