Whamcloud - gitweb
LU-13474 gss: do not return -ERESTART when gss rpc times out
[fs/lustre-release.git] / lustre / tests / swap_lock_test.c
index fed55e7..e79b4d8 100644 (file)
@@ -43,7 +43,6 @@
 #include <time.h>
 
 #include <lustre/lustreapi.h>
-#include <lustre/lustre_idl.h>
 
 #define ERROR(fmt, ...)                                                        \
        fprintf(stderr, "%s: %s:%d: %s: " fmt "\n",                     \
@@ -299,7 +298,7 @@ static void test15(void)
 
        fd = create_file("foo1", 1000, 'x');
 
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
 
        close(fd);
@@ -308,7 +307,7 @@ static void test15(void)
        fd = open(filename, O_RDONLY);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
 
        rc = llapi_lease_check(fd);
@@ -321,7 +320,7 @@ static void test15(void)
        fd = open(filename, O_WRONLY);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_WRLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_WRLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
 
        rc = llapi_lease_check(fd);
@@ -334,7 +333,7 @@ static void test15(void)
        fd = open(filename, O_RDWR);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
 
        rc = llapi_lease_check(fd);
@@ -347,7 +346,7 @@ static void test15(void)
        fd = open(filename, O_RDWR);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_WRLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_WRLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
 
        rc = llapi_lease_check(fd);
@@ -360,7 +359,7 @@ static void test15(void)
        fd = open(filename, O_WRONLY);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == -EPERM, "cannot get lease '%s': %s",
                filename, strerror(-rc));
 
@@ -374,7 +373,7 @@ static void test15(void)
        fd = open(filename, O_RDONLY);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_WRLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_WRLCK);
        ASSERTF(rc == -EPERM, "cannot get lease '%s': %s",
                filename, strerror(-rc));
 
@@ -388,10 +387,10 @@ static void test15(void)
        fd = open(filename, O_RDWR);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
 
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == -EBUSY, "can get lease '%s': %s",
                filename, strerror(-rc));
 
@@ -405,10 +404,10 @@ static void test15(void)
        fd = open(filename, O_RDWR);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_WRLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_WRLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
 
-       rc = llapi_lease_get(fd, LL_LEASE_WRLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_WRLCK);
        ASSERTF(rc == -EBUSY, "can get lease '%s': %s",
                filename, strerror(-rc));
 
@@ -422,14 +421,14 @@ static void test15(void)
        fd = open(filename, O_RDWR);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
 
        rc = llapi_lease_check(fd);
        ASSERTF(rc == LL_LEASE_RDLCK,
                "invalid lease type on '%s': %s", filename, strerror(-rc));
 
-       rc = llapi_lease_put(fd);
+       rc = llapi_lease_release(fd);
        ASSERTF(rc == LL_LEASE_RDLCK, "was not able to put back lease '%s': %s",
                filename, strerror(-rc));
 
@@ -437,11 +436,8 @@ static void test15(void)
        ASSERTF(rc == 0,
                "invalid lease type on '%s': %s", filename, strerror(-rc));
 
-#if 0
-       /* BUG! This returns EBUSY but there's no lease. */
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
-#endif
 
        close(fd);
 
@@ -449,14 +445,14 @@ static void test15(void)
        fd = open(filename, O_RDWR);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_WRLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_WRLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
 
        rc = llapi_lease_check(fd);
        ASSERTF(rc == LL_LEASE_WRLCK,
                "invalid lease type on '%s': %s", filename, strerror(-rc));
 
-       rc = llapi_lease_put(fd);
+       rc = llapi_lease_release(fd);
        ASSERTF(rc == LL_LEASE_WRLCK, "was not able to put back lease '%s': %s",
                filename, strerror(-rc));
 
@@ -464,11 +460,8 @@ static void test15(void)
        ASSERTF(rc == 0,
                "invalid lease type on '%s': %s", filename, strerror(-rc));
 
-#if 0
-       /* BUG! This returns EBUSY but there's no lease. */
-       rc = llapi_lease_get(fd, LL_LEASE_WRLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_WRLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
-#endif
 
        close(fd);
 
@@ -477,30 +470,75 @@ static void test15(void)
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
        for (i = 0; i < 1000; i++) {
-#if 0
-               /* BUG! Same as above */
-               rc = llapi_lease_get(fd, LL_LEASE_WRLCK);
+               rc = llapi_lease_acquire(fd, LL_LEASE_WRLCK);
                ASSERTF(rc == 0, "cannot get lease '%s': %s",
                        filename, strerror(-rc));
 
-               rc = llapi_lease_put(fd);
+               rc = llapi_lease_release(fd);
                ASSERTF(rc == LL_LEASE_WRLCK,
                        "was not able to put back lease '%s': %s",
                        filename, strerror(-rc));
 
-               rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+               rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
                ASSERTF(rc == 0, "cannot get lease '%s': %s",
                        filename, strerror(-rc));
 
-               rc = llapi_lease_put(fd);
+               rc = llapi_lease_release(fd);
                ASSERTF(rc == LL_LEASE_RDLCK,
                        "was not able to put back lease '%s': %s",
                        filename, strerror(-rc));
-#endif
        }
 
        close(fd);
 
+       /* Get a write lease, release and take a read one */
+       fd = open(filename, O_RDWR);
+       ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
+
+       rc = llapi_lease_acquire(fd, LL_LEASE_WRLCK);
+       ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
+
+       rc = llapi_lease_check(fd);
+       ASSERTF(rc == LL_LEASE_WRLCK,
+               "invalid lease type on '%s': %s", filename, strerror(-rc));
+
+       rc = llapi_lease_release(fd);
+       ASSERTF(rc == LL_LEASE_WRLCK, "was not able to put back lease '%s': %s",
+               filename, strerror(-rc));
+
+       rc = llapi_lease_check(fd);
+       ASSERTF(rc == 0,
+               "invalid lease type on '%s': %s", filename, strerror(-rc));
+
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
+       ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
+
+       close(fd);
+
+       /* Get a read lease, release and take a write one */
+       fd = open(filename, O_RDWR);
+       ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
+
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
+       ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
+
+       rc = llapi_lease_check(fd);
+       ASSERTF(rc == LL_LEASE_RDLCK,
+               "invalid lease type on '%s': %s", filename, strerror(-rc));
+
+       rc = llapi_lease_release(fd);
+       ASSERTF(rc == LL_LEASE_RDLCK, "was not able to put back lease '%s': %s",
+               filename, strerror(-rc));
+
+       rc = llapi_lease_check(fd);
+       ASSERTF(rc == 0,
+               "invalid lease type on '%s': %s", filename, strerror(-rc));
+
+       rc = llapi_lease_acquire(fd, LL_LEASE_WRLCK);
+       ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
+
+       close(fd);
+
        free(filename);
 }
 
@@ -510,7 +548,7 @@ static void test16(void)
        int rc;
        char *filename;
        int fd;
-       lustre_fid fid;
+       struct lu_fid fid;
 
        rc = mkdir(mainpath, 0);
        ASSERTF(rc == 0, "mkdir failed for '%s': %s",
@@ -530,7 +568,7 @@ static void test16(void)
                               O_RDWR | O_NOATIME | O_NONBLOCK | O_NOFOLLOW);
        ASSERTF(fd >= 0, "open failed for '%s': %s", filename, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", filename, strerror(-rc));
 
        close(fd);
@@ -552,7 +590,7 @@ static void test17(void)
        fd = open(mainpath, O_DIRECTORY);
        ASSERTF(fd >= 0, "open failed for '%s': %s", mainpath, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == -ENOTTY, "can get lease on directory '%s': %s",
                mainpath, strerror(-rc));
 
@@ -562,7 +600,7 @@ static void test17(void)
        fd = open(fsmountdir, O_DIRECTORY);
        ASSERTF(fd >= 0, "open failed for '%s': %s", mainpath, strerror(errno));
 
-       rc = llapi_lease_get(fd, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd, LL_LEASE_RDLCK);
        ASSERTF(rc == -ENOTTY, "can get lease on directory '%s': %s",
                mainpath, strerror(-rc));
 
@@ -747,7 +785,7 @@ static void test40(void)
        fd1 = create_file("foo1", foo1_size, 'x');
        fd2 = create_file("foo2", foo2_size, 'y');
 
-       rc = llapi_lease_get(fd1, LL_LEASE_RDLCK);
+       rc = llapi_lease_acquire(fd1, LL_LEASE_RDLCK);
        ASSERTF(rc == 0, "cannot get lease '%s': %s", mainpath, strerror(-rc));
 
        rc = llapi_lease_check(fd1);
@@ -761,7 +799,7 @@ static void test40(void)
        rc = llapi_lease_check(fd1);
        ASSERTF(rc == 0, "lease not lost on '%s': %s", mainpath, strerror(-rc));
 
-       rc = llapi_lease_put(fd1);
+       rc = llapi_lease_release(fd1);
        ASSERTF(rc == -ENOLCK,
                "was able to put back lease: %s", strerror(-rc));