Invalidating NFS attribute cache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

For some silly reason I have an application that needs to poll for the
existence of a certain file on a NFS share. 
(This is done from Sybase ASE ;-)

Now I run into the issue of attribute caching. Turning of the attribute
cache with the mount option of -o noac easily solves all the issues.

However, it would be nice if we could still use attribute caching and
force to invalidate on-demand the attribute cache.

After a lot of trying, the following solution seems to work for me now:
(pathname is the test file)   

#define _GNU_SOURCE

    char *copy = strdup(pathname);
    char *path = dirname(copy);

    int fd = open(path, O_DIRECTORY);
    if (fd >= 0)
        close(fd);

    free(copy);

    return access(pathname, F_OK);

Just opening the parent directory with O_DIRECTORY seems to do the
trick.

My questions: Is this hack going to work under every circumstance or
could it fail in the future with some update. Is there a ioctl call that
could the the same thing? That is invalidate the parent directory cache.
Or do I miss something completely ?-)

Thanks in advance

Hans  

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux