PEFS no longer working after FreeBSD update

Hello all,

I have a problem with PEFS; I updated to FreeBSD RELEASE 11.1 using
freebsd-update upgrade -r 11.1-RELEASE, as per the handbook, and PEFS stopped working:
Code:
pefs: cannot find or load "pefs" kernel module
Running kldstat showed no PEFS module loaded, and kldload pefs.ko also failed. Dmesg said: dmesg | grep pefs = "KLD file pefs.ko - could not finalize loading

This post said /usr/src may need to be updated (although I thought freebsd-update had handled this), so: rm -r /usr/src and then svnlite checkout svn://[URL='http://svn.freebsd.org/base/release/11.1.0']svn.freebsd.org/base/release/11.1.0[/URL] /usr/src

I uninstalled PEFS, and tried to rebuild it from ports (quarterly Q3), first with ports-mgmt/synth, then with make install clean, but it still wouldn't work. Both have the build message:
Code:
===> Options unchanged
===>  Building for pefs-kmod-2017.02.19
===> sys/modules/pefs (all)
Warning: Object directory not changed from original /usr/ports/sysutils/pefs-kmod/
work/pefs-2017-02-19/sys/modules/pefs
cc -O2 -pipe -fno-strict-aliasing  -Werror -D_KERNEL -DKLD_MODULE -nostdinc  -I/usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19/sys/modules/pefs/../../ -I. -I/usr/src/sys -fno-common  -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer  -MD  -MF.depend.pefs_vnops.o -MTpefs_vnops.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__  -Wmissing-include-dirs -fdiagnostics-show-option  -Wno-unknown-pragmas  -Wno-error-tautological-compare -Wno-error-empty-body  -Wno-error-parentheses-equality -Wno-error-unused-function  -Wno-error-pointer-sign -Wno-error-shift-negative-value -Wno-error-address-of-packed-member  -mno-aes -mno-avx  -std=iso9899:1999 -c /usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19/sys/modules/pefs/../../fs/pefs/pefs_vnops.c -o pefs_vnops.o
/usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19/sys/modules/pefs/../../fs/pefs/pefs_vnops.c:2068:7: error:
      implicit declaration of function 'vm_object_cache_is_empty' is invalid in C99
      [-Werror,-Wimplicit-function-declaration]
            !vm_object_cache_is_empty(object)
             ^
/usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19/sys/modules/pefs/../../fs/pefs/pefs_vnops.c:2068:7: error:
      this function declaration is not a prototype [-Werror,-Wstrict-prototypes]
/usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19/sys/modules/pefs/../../fs/pefs/pefs_vnops.c:2463:6: error:
      implicit declaration of function 'vm_page_is_cached' is invalid in C99
      [-Werror,-Wimplicit-function-declaration]
        if (vm_page_is_cached(vp->v_object, idx)) {
            ^
/usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19/sys/modules/pefs/../../fs/pefs/pefs_vnops.c:2463:6: note:
      did you mean 'vm_page_is_valid'?
/usr/src/sys/vm/vm_page.h:496:5: note: 'vm_page_is_valid' declared here
int vm_page_is_valid (vm_page_t, int, int);
    ^
/usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19/sys/modules/pefs/../../fs/pefs/pefs_vnops.c:2463:6: error:
      this function declaration is not a prototype [-Werror,-Wstrict-prototypes]
        if (vm_page_is_cached(vp->v_object, idx)) {
            ^
/usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19/sys/modules/pefs/../../fs/pefs/pefs_vnops.c:2466:3: error:
      implicit declaration of function 'vm_page_cache_free' is invalid in C99
      [-Werror,-Wimplicit-function-declaration]
                vm_page_cache_free(vp->v_object, idx, idx + 1);
                ^
/usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19/sys/modules/pefs/../../fs/pefs/pefs_vnops.c:2466:3: error:
      this function declaration is not a prototype [-Werror,-Wstrict-prototypes]
6 errors generated.
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19/sys/modules/pefs
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/sysutils/pefs-kmod/work/pefs-2017-02-19
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/sysutils/pefs-kmod
*** Error code 1

Stop.
make: stopped in /usr/ports/sysutils/pefs-kmod

Still no luck. What have I missed?
 
I have the latest version of the Quarterly Ports tree (revision 448590) which is supposed to be more stable, isn't it?

I want to use quarterly repos / trees, and I do not want to use the latest ports and packages (for various reasons). If I momentarily update to the latest ports tree, rebuild and install only sysutils/pefs-kmod, then go back to the quarterly tree, will I be good?

It looks like I'm not the only one with this problem, so it may be my only solution for now.
 
I have the latest version of the Quarterly Ports tree (revision 448590) which is supposed to be more stable, isn't it?
Yes, stable, as in 'not a lot of changes happening'. No guarantees about stability as in 'runs forever without problems' are given for third party software.

Temporarily switch to the latest branch, then we can rule out (or not) the bug is in a specific version that's in the quarterly branch and it's not a bigger issue.
 
Done.

Switch to latest ports tree:
rm -r /usr/ports
svnlite checkout https://svn.freebsd.org/ports/head /usr/ports

Reinstall sysutils/pefs-kmod:
synth install sysutils/pefs-kmod

Switch back to quarterly ports tree:
rm -r /usr/ports
svnlite checkout https://svn.freebsd.org/ports/branches/2017Q3/ /usr/ports

Make sure pkg doesn't downgrade sysutils/pefs-kmod:
pkg lock pefs-kmod-2017.06.20

Now all is working well.

Thank you.
 
Back
Top