[Linux-cluster] What can cause dlm_pthread_init to generate an errno 13?

Eric Johnson johnson.eric at gmail.com
Thu Nov 2 17:51:34 UTC 2006


Hi -

I must be very dumb.  I'm unable to do what I would consider to be the
"Hello World" of user mode dlm.

[ejohnson at gfsa01:~/projects/dlm-simple] cat foo.cpp
#include <errno.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdint.h>

extern "C" {
  #include <libdlm.h>
}
#include <pthread.h>

main(int argc, char **argv)
{
  printf("hello world\n");
  char lockName[] = "foobar" ;

  int initStatus = dlm_pthread_init();
  printf("initStatus: %d, errno: %d\n",initStatus,errno);

  int lockid =0 ;
  int status = lock_resource( lockName, LKM_EXMODE, 0, &lockid ) ;
  printf("status: %d, errno: %d\n",status,errno);
}
[ejohnson at gfsa01:~/projects/dlm-simple] touch foo.cpp

[ejohnson at gfsa01:~/projects/dlm-simple] make
g++ -D_REENTRANT foo.cpp -o foo -ldlm -lpthread
./foo/home/dev/util/linux64/bin/ld: skipping incompatible
/home/dev/util/linux64/lib/gcc/x86_64-unknown-linux-gnu/4.1.1/libstdc++.a
when searching for -lstdc++

[ejohnson at gfsa01:~/projects/dlm-simple] ./foo
hello world
initStatus: -1, errno: 13
status: -1, errno: 13

I have googled around endlessly and been unable to find any insight as
to what it is that I'm missing.

I'll gladly take a terse - "Hey knucklehead, go read this page in more detail."

-Eric




More information about the Linux-cluster mailing list