1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Copyright (c) Wipro Technologies Ltd, 2002. All Rights Reserved. 4 * Author: Nirmala Devi Dhanasekar <nirmala.devi@wipro.com> 5 * 6 * Phase I test for the umount(2) system call. 7 * It is intended to provide a limited exposure of the system call. 8 */ 9 10#include <errno.h> 11#include <sys/mount.h> 12#include "tst_test.h" 13 14#define MNTPOINT "mntpoint" 15 16static int mount_flag; 17 18static void verify_umount(void) 19{ 20 if (mount_flag != 1) { 21 SAFE_MOUNT(tst_device->dev, MNTPOINT, 22 tst_device->fs_type, 0, NULL); 23 mount_flag = 1; 24 } 25 26 TEST(umount(MNTPOINT)); 27 28 if (TST_RET != 0 && TST_ERR == EBUSY) { 29 tst_res(TINFO, "umount() Failed with EBUSY " 30 "possibly some daemon (gvfsd-trash) " 31 "is probing newly mounted dirs"); 32 } 33 34 if (TST_RET != 0) { 35 tst_res(TFAIL | TTERRNO, "umount() Failed"); 36 return; 37 } 38 39 tst_res(TPASS, "umount() Passed"); 40 mount_flag = 0; 41} 42 43static void setup(void) 44{ 45 SAFE_MKDIR(MNTPOINT, 0775); 46} 47 48static void cleanup(void) 49{ 50 if (mount_flag) 51 tst_umount(MNTPOINT); 52} 53 54static struct tst_test test = { 55 .needs_root = 1, 56 .format_device = 1, 57 .setup = setup, 58 .cleanup = cleanup, 59 .test_all = verify_umount, 60}; 61