O_RSYNC in 6.3.0

I have a resource manager that supports O_RSYNC, and which works fine on
6.2, but when I try to open it (with the O_RSYNC flag set) on 6.3.0 I
always get EINVAL. Am I doing something silly, or is the O.S. now
deciding that nobody can support the SYNC features?

Murf

John A. Murphy wrote:

I have a resource manager that supports O_RSYNC, and which works fine on
6.2, but when I try to open it (with the O_RSYNC flag set) on 6.3.0 I
always get EINVAL. Am I doing something silly, or is the O.S. now
deciding that nobody can support the SYNC features?

Sounds like you are not advertising “IOFUNC_PC_SYNC_IO” in the ‘conf’
field of your iofunc_mount_t … ? IIRC, there was a pre-6.3 bug with
this which did not check the resmgr could support it before letting it
through, but it was on fcntl() rather than open().

Nope, it’s there:

static iofunc_mount_t mountpoint = {0, 0, 0, 0, &ocb_funcs};
mountpoint.conf = IOFUNC_PC_SYNC_IO;

What else should I look for?


Murf

John Garvey wrote:

John A. Murphy wrote:
I have a resource manager that supports O_RSYNC, and which works fine on
6.2, but when I try to open it (with the O_RSYNC flag set) on 6.3.0 I
always get EINVAL. Am I doing something silly, or is the O.S. now
deciding that nobody can support the SYNC features?

Sounds like you are not advertising “IOFUNC_PC_SYNC_IO” in the ‘conf’
field of your iofunc_mount_t … ? IIRC, there was a pre-6.3 bug with
this which did not check the resmgr could support it before letting it
through, but it was on fcntl() rather than open().

Oops! My fault!!! Too many irons in the fire. The problem was that I
have two version of the same resource manager, and I was running the one
that does NOT support O_RSYNC, so the O.S. did exactly the right thing.
I must be getting a little gunshy about 6.3.0 problems. Sorry for the
bother, and thanks for the quick response!

Murf

“John A. Murphy” wrote:

Nope, it’s there:

static iofunc_mount_t mountpoint = {0, 0, 0, 0, &ocb_funcs};
mountpoint.conf = IOFUNC_PC_SYNC_IO;

What else should I look for?

Murf

John Garvey wrote:

John A. Murphy wrote:
I have a resource manager that supports O_RSYNC, and which works fine on
6.2, but when I try to open it (with the O_RSYNC flag set) on 6.3.0 I
always get EINVAL. Am I doing something silly, or is the O.S. now
deciding that nobody can support the SYNC features?

Sounds like you are not advertising “IOFUNC_PC_SYNC_IO” in the ‘conf’
field of your iofunc_mount_t … ? IIRC, there was a pre-6.3 bug with
this which did not check the resmgr could support it before letting it
through, but it was on fcntl() rather than open().