I can't use sockfd_put(sock) directly. I trace its code, the code is extern __inline__ void sockfd_put(struct socket *sock) { fput(sock->file); }
so I use fput(sock->file) but it has problems too 1) execute "ls" in the ftp is also block 2) kernel prints "socki_lookup: socket file changed!" 3) execute "ftp localhost" after rmmod, it will crash and why the sockfd_put is needed after sockfd_lookup Thanak again MingChieh Chang Taiwan =============================================== On Tue, 01 Mar 2005 08:56:19 +0100, Eric Dumazet <[EMAIL PROTECTED]> wrote: > Hi > > Try adding sockfd_put(sock) ; > > MingJie Chang wrote: > > Dear all, > > > > I want to get socket information by the sockfd while accetping, > > > > so I write a module to test sockfd_lookup(), > > > > but I got some problems when I test it. > > > > I hope someone can help me... > > > > Thank you > > > > following text is my code and error message > > =========================================== > > === code === > > > > int my_socketcall(int call,unsigned long *args) > > { > > int ret,err; > > struct socket * sock; > > > > ret = run_org_socket_call(call,args); //orignal sys_sockcall() > > > > if(call==SYS_ACCEPT&&ret>=0) > > { > > sock=sockfd_lookup(ret,&err); > > printk("lookup done\n"); > > if (sock) sockfd_put(sock) ; > > > } > > return ret; > > } > > Eric Dumazet > > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/