On Tue, May 08, 2018 at 12:55:49PM +0200, Martin Pieuchot wrote:
> Use fd_getfile() instead of rewriting it.  Plus we'll need a properly
> refcounted `fp' as soon as some syscalls are unlocked.
> 
> Ok?

OK bluhm@

> Index: kern/kern_sysctl.c
> ===================================================================
> RCS file: /cvs/src/sys/kern/kern_sysctl.c,v
> retrieving revision 1.335
> diff -u -p -r1.335 kern_sysctl.c
> --- kern/kern_sysctl.c        8 May 2018 09:03:58 -0000       1.335
> +++ kern/kern_sysctl.c        8 May 2018 09:37:55 -0000
> @@ -1364,11 +1364,10 @@ sysctl_file(int *name, u_int namelen, ch
>                       if (pr->ps_tracevp)
>                               FILLIT(NULL, NULL, KERN_FILE_TRACE, 
> pr->ps_tracevp, pr);
>                       for (i = 0; i < fdp->fd_nfiles; i++) {
> -                             if ((fp = fdp->fd_ofiles[i]) == NULL)
> -                                     continue;
> -                             if (!FILE_IS_USABLE(fp))
> +                             if ((fp = fd_getfile(fdp, i)) == NULL)
>                                       continue;
>                               FILLIT(fp, fdp, i, NULL, pr);
> +                             FRELE(fp, p);
>                       }
>               }
>               if (!matched)
> @@ -1394,11 +1393,10 @@ sysctl_file(int *name, u_int namelen, ch
>                       if (pr->ps_tracevp)
>                               FILLIT(NULL, NULL, KERN_FILE_TRACE, 
> pr->ps_tracevp, pr);
>                       for (i = 0; i < fdp->fd_nfiles; i++) {
> -                             if ((fp = fdp->fd_ofiles[i]) == NULL)
> -                                     continue;
> -                             if (!FILE_IS_USABLE(fp))
> +                             if ((fp = fd_getfile(fdp, i)) == NULL)
>                                       continue;
>                               FILLIT(fp, fdp, i, NULL, pr);
> +                             FRELE(fp, p);
>                       }
>               }
>               break;

Reply via email to