int main(int argc, char **argv) { int fd_0, fd_1, fd_2, ret = 0; test_init(argc, argv); m = get_cwd_mnt_info(); if (!m) { pr_perror("Can't fetch mountinfo"); return -1; } if (!strcmp(m->fsname, "btrfs")) m->s_dev = kdev_to_odev(m->s_dev); if (open_all_files(&fd_0, &fd_1, &fd_2)) return -1; flock(fd_0, LOCK_SH); flock(fd_1, LOCK_EX); flock(fd_2, LOCK_MAND | LOCK_READ); test_daemon(); test_waitsig(); if (check_file_lock(fd_0, "ADVISORY", "READ", dev, inodes[0])) { fail("Failed on fd %d", fd_0); ret |= 1; } if (check_file_lock(fd_1, "ADVISORY", "WRITE", dev, inodes[1])) { fail("Failed on fd %d", fd_1); ret |= 1; } if (check_file_lock(fd_2, "MSNFS", "READ", dev, inodes[2])) { fail("Failed on fd %d", fd_2); ret |= 1; } if (!ret) pass(); close(fd_0); close(fd_1); close(fd_2); unlink(file0); unlink(file1); unlink(file2); return ret; }
int main(int argc, char **argv) { int fd_0, fd_1, fd_2; test_init(argc, argv); m = get_cwd_mnt_info(); if (!m) { pr_perror("Can't fetch mountinfo"); return -1; } if (!strcmp(m->fsname, "btrfs")) m->s_dev = kdev_to_odev(m->s_dev); if (open_all_files(&fd_0, &fd_1, &fd_2)) return -1; flock(fd_0, LOCK_SH); flock(fd_1, LOCK_EX); flock(fd_2, LOCK_MAND | LOCK_READ); test_daemon(); test_waitsig(); if (check_file_locks()) fail("Flock file locks check failed"); else pass(); close(fd_0); close(fd_1); close(fd_2); unlink(file0); unlink(file1); unlink(file2); return 0; }