The functional tests for utime checks if utime updates the
modification and access time to current time, however V9FS,
similar to NFS, by default uses the server's localtime if
client doesnt specify a new time. The current implentation
does not run the test if the underlying filesystem is NFS.
A similar check for V9FS is also required, hence this patch.

Signed-off-by: Harsh Prateek Bora <[email protected]>
---
 include/test.h                            |    1 +
 lib/tst_is_cwd.c                          |   12 +++++++++++-
 testcases/kernel/syscalls/utime/utime01.c |    7 ++++++-
 testcases/kernel/syscalls/utime/utime02.c |    7 ++++++-
 testcases/kernel/syscalls/utime/utime03.c |    7 ++++++-
 5 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/include/test.h b/include/test.h
index 019bc59..39bad72 100644
--- a/include/test.h
+++ b/include/test.h
@@ -214,6 +214,7 @@ int tst_kvercmp(int r1, int r2, int r3);
 
 /* lib/tst_is_cwd.c */
 int tst_is_cwd_nfs(void);
+int tst_is_cwd_v9fs(void);
 int tst_is_cwd_tmpfs(void);
 int tst_is_cwd_ramfs(void);
 
diff --git a/lib/tst_is_cwd.c b/lib/tst_is_cwd.c
index 775d1f3..8c169dd 100644
--- a/lib/tst_is_cwd.c
+++ b/lib/tst_is_cwd.c
@@ -31,6 +31,16 @@ int tst_is_cwd_nfs(void)
        return sf.f_type == NFS_MAGIC ? 1 : 0;
 }
 
+#define V9FS_MAGIC 0x01021997 /* kernel-source/include/linux/magic.h */
+int tst_is_cwd_v9fs(void)
+{
+        struct statfs sf;
+        statfs(".", &sf);
+
+        /*  Verify that the file is not on a nfs filesystem */
+        return (sf.f_type == V9FS_MAGIC);
+}
+
 #define RAMFS_MAGIC 0x858458f6
 int tst_is_cwd_ramfs(void)
 {

diff --git a/testcases/kernel/syscalls/utime/utime01.c 
b/testcases/kernel/syscalls/utime/utime01.c
index c917afa..a15440c 100644
--- a/testcases/kernel/syscalls/utime/utime01.c
+++ b/testcases/kernel/syscalls/utime/utime01.c
@@ -120,6 +120,11 @@ int main(int ac, char **av)
                         "Cannot do utime on a file located on an NFS 
filesystem");
        }
 
+        if (tst_is_cwd_v9fs()) {
+                tst_brkm(TCONF, cleanup,
+                         "Cannot do utime on a file located on an 9P 
filesystem");
+        }
+
        /* set the expected errnos... */
        TEST_EXP_ENOS(exp_enos);
 
 
diff --git a/testcases/kernel/syscalls/utime/utime02.c 
b/testcases/kernel/syscalls/utime/utime02.c
index 8928a78..f0558a8 100644
--- a/testcases/kernel/syscalls/utime/utime02.c
+++ b/testcases/kernel/syscalls/utime/utime02.c
@@ -125,6 +125,11 @@ int main(int ac, char **av)
                         "Cannot do utime on a file located on an NFS 
filesystem");
        }
 
+        if (tst_is_cwd_v9fs()) {
+                tst_brkm(TCONF, cleanup,
+                         "Cannot do utime on a file located on an 9P 
filesystem");
+        }
+
        /* set the expected errnos... */
        TEST_EXP_ENOS(exp_enos);
 
diff --git a/testcases/kernel/syscalls/utime/utime03.c 
b/testcases/kernel/syscalls/utime/utime03.c
index 23402b7..4f70d2d 100644
--- a/testcases/kernel/syscalls/utime/utime03.c
+++ b/testcases/kernel/syscalls/utime/utime03.c
@@ -136,6 +136,11 @@ int main(int ac, char **av)
                         "Cannot do utime on a file located on an NFS 
filesystem");
        }
 
+        if (tst_is_cwd_v9fs()) {
+                tst_brkm(TCONF, cleanup,
+                         "Cannot do utime on a file located on an 9P 
filesystem");
+        }
+
        /* set the expected errnos... */
        TEST_EXP_ENOS(exp_enos);
 
-- 
1.7.1.1


------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in 
Real-Time with Splunk. Collect, index and harness all the fast moving IT data 
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business 
insights. http://p.sf.net/sfu/splunk-dev2dev 
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to