Date: Mon, 11 Jul 2011 07:11:23 +0000 From: gk@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r224117 - in soc2011/gk/ino64-head/sys/gnu/fs: reiserfs xfs xfs/FreeBSD Message-ID: <20110711071123.11FFD106568B@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gk Date: Mon Jul 11 07:11:22 2011 New Revision: 224117 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=224117 Log: Remove readdir cookies and set d_off in XFS and ReiserFS Modified: soc2011/gk/ino64-head/sys/gnu/fs/reiserfs/reiserfs_namei.c soc2011/gk/ino64-head/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c soc2011/gk/ino64-head/sys/gnu/fs/xfs/xfs_dir2.c Modified: soc2011/gk/ino64-head/sys/gnu/fs/reiserfs/reiserfs_namei.c ============================================================================== --- soc2011/gk/ino64-head/sys/gnu/fs/reiserfs/reiserfs_namei.c Mon Jul 11 07:11:08 2011 (r224116) +++ soc2011/gk/ino64-head/sys/gnu/fs/reiserfs/reiserfs_namei.c Mon Jul 11 07:11:22 2011 (r224117) @@ -13,9 +13,6 @@ const char *name, int namelen, struct path * path_to_entry, struct reiserfs_dir_entry *de); -MALLOC_DEFINE(M_REISERFSCOOKIES, "reiserfs_cookies", - "ReiserFS VOP_READDIR cookies"); - /* ------------------------------------------------------------------- * Lookup functions * -------------------------------------------------------------------*/ @@ -128,8 +125,6 @@ struct uio *a_uio; struct ucred *a_cred; int *a_eofflag; - int *a_ncookies; - u_long **a_cookies; } */*ap) { int error = 0; @@ -146,10 +141,6 @@ INITIALIZE_PATH(path_to_entry); int entry_num, item_num, search_res; - /* The NFS part */ - int ncookies = 0; - u_long *cookies = NULL; - /* * Form key for search the next directory entry using f_pos field of * file structure @@ -166,12 +157,6 @@ reiserfs_log(LOG_DEBUG, "uio_offset = %jd, uio_resid = %d\n", (intmax_t)uio->uio_offset, uio->uio_resid); - if (ap->a_ncookies && ap->a_cookies) { - cookies = (u_long *)malloc( - uio->uio_resid / 16 * sizeof(u_long), - M_REISERFSCOOKIES, M_WAITOK); - } - while (1) { //research: /* @@ -200,12 +185,6 @@ struct reiserfs_de_head *deh = B_I_DEH(bp, ih) + entry_num; - if (ap->a_ncookies == NULL) { - cookies = NULL; - } else { - //ncookies = - } - reiserfs_log(LOG_DEBUG, "walking through directory entries\n"); for (; entry_num < I_ENTRY_COUNT(ih); @@ -253,6 +232,7 @@ /* Copy to user land */ dstdp.d_fileno = d_ino; + dstdp.d_off = d_off + 1; dstdp.d_type = DT_UNKNOWN; dstdp.d_namlen = d_namlen; dstdp.d_reclen = GENERIC_DIRSIZ(&dstdp); @@ -269,11 +249,6 @@ dstdp.d_reclen, uio); if (error) goto end; - if (cookies != NULL) { - cookies[ncookies] = - d_off; - ncookies++; - } } else break; } else { @@ -343,12 +318,6 @@ pathrelse(&path_to_entry); reiserfs_check_path(&path_to_entry); out: - if (error && cookies != NULL) { - free(cookies, M_REISERFSCOOKIES); - } else if (ap->a_ncookies != NULL && ap->a_cookies != NULL) { - *ap->a_ncookies = ncookies; - *ap->a_cookies = cookies; - } return (error); } Modified: soc2011/gk/ino64-head/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c ============================================================================== --- soc2011/gk/ino64-head/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c Mon Jul 11 07:11:08 2011 (r224116) +++ soc2011/gk/ino64-head/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c Mon Jul 11 07:11:22 2011 (r224117) @@ -973,8 +973,6 @@ struct uio *a_uio; struct ucred *a_cred; int *a_eofflag; - int *a_ncookies; - u_long **a_cookies; } */ *ap) { struct vnode *vp = ap->a_vp; @@ -985,9 +983,6 @@ if (vp->v_type != VDIR) return (EPERM); - if (ap->a_ncookies) { - return (EOPNOTSUPP); - } error = 0; while (!eof){ Modified: soc2011/gk/ino64-head/sys/gnu/fs/xfs/xfs_dir2.c ============================================================================== --- soc2011/gk/ino64-head/sys/gnu/fs/xfs/xfs_dir2.c Mon Jul 11 07:11:08 2011 (r224116) +++ soc2011/gk/ino64-head/sys/gnu/fs/xfs/xfs_dir2.c Mon Jul 11 07:11:22 2011 (r224117) @@ -721,6 +721,7 @@ uio->uio_resid -= reclen; idbp->d_reclen = reclen; idbp->d_fileno = pa->ino; + idbp->d_off = pa->cook; idbp->d_type = DT_UNKNOWN; idbp->d_namlen = namelen; memcpy(idbp->d_name, pa->name, namelen); @@ -759,6 +760,7 @@ idbp = &dtmp; idbp->d_reclen = reclen; idbp->d_fileno = pa->ino; + idbp->d_off = pa->cook; idbp->d_type = DT_UNKNOWN; idbp->d_namlen = namelen; memcpy(idbp->d_name, pa->name, namelen);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110711071123.11FFD106568B>