s3:vfs:gpfs: fix flapping offline: always get winAttrs from gpfs for is_offline
authorMichael Adam <obnox@samba.org>
Thu, 3 Jul 2014 08:10:11 +0000 (10:10 +0200)
committerChristof Schmitt <cs@samba.org>
Sun, 13 Jul 2014 06:59:11 +0000 (08:59 +0200)
There is a problem of flapping offline due to uninitialized
stat buffers. Due to a optimization in vfswrap_readdir which
directly calling fastatat (i.e. not through vfs), marking the
stat buffer valid, there is nothing this module can do about
it and hence can not currently not rely on the vaildity of
the stat buffer.

By always calling out to GPFS even when the stat buffer is
flagged valid, we can always return correct offline information,
thereby sacrificing the readdir optimization.

Pair-Programmed-With: Volker Lendecke <vl@samba.org>

Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Christof Schmitt <cs@samba.org>
source3/modules/vfs_gpfs.c

index d8d59f95a9c4badad0e28026cdb4519d205f1454..9fcce78a681ce848bf5f35d06b93707bf53b0f51 100644 (file)
@@ -1819,9 +1819,7 @@ static bool vfs_gpfs_is_offline(struct vfs_handle_struct *handle,
                return -1;
        }
 
-       if (VALID_STAT(*sbuf)) {
-               attrs.winAttrs = sbuf->vfs_private;
-       } else {
+       {
                int ret;
                ret = get_gpfs_winattrs(path, &attrs);