1 /* 2 * Copyright (c) Wipro Technologies Ltd, 2002. All Rights Reserved. 3 * 4 * This program is free software; you can redistribute it and/or modify it 5 * under the terms of version 2 of the GNU General Public License as 6 * published by the Free Software Foundation. 7 * 8 * This program is distributed in the hope that it would be useful, but 9 * WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11 * 12 * You should have received a copy of the GNU General Public License along 13 * with this program; if not, write the Free Software Foundation, Inc., 14 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 15 * 16 * AUTHOR : Nirmala Devi Dhanasekar <nirmala.devi (at) wipro.com> 17 * 18 * DESCRIPTION 19 * This is a Phase I test for the umount(2) system call. 20 * It is intended to provide a limited exposure of the system call. 21 *****************************************************************************/ 22 23 #include <errno.h> 24 #include <sys/mount.h> 25 #include "tst_test.h" 26 27 #define MNTPOINT "mntpoint" 28 29 static int mount_flag; 30 31 static void verify_umount(void) 32 { 33 if (mount_flag != 1) { 34 SAFE_MOUNT(tst_device->dev, MNTPOINT, 35 tst_device->fs_type, 0, NULL); 36 mount_flag = 1; 37 } 38 39 TEST(umount(MNTPOINT)); 40 41 if (TEST_RETURN != 0 && TEST_ERRNO == EBUSY) { 42 tst_res(TINFO, "umount() Failed with EBUSY " 43 "possibly some daemon (gvfsd-trash) " 44 "is probing newly mounted dirs"); 45 } 46 47 if (TEST_RETURN != 0) { 48 tst_res(TFAIL | TTERRNO, "umount() Failed"); 49 return; 50 } 51 52 tst_res(TPASS, "umount() Passed"); 53 mount_flag = 0; 54 } 55 56 static void setup(void) 57 { 58 SAFE_MKDIR(MNTPOINT, 0775); 59 } 60 61 static void cleanup(void) 62 { 63 if (mount_flag) 64 tst_umount(MNTPOINT); 65 } 66 67 static struct tst_test test = { 68 .tid = "umount01", 69 .needs_root = 1, 70 .needs_tmpdir = 1, 71 .format_device = 1, 72 .setup = setup, 73 .cleanup = cleanup, 74 .test_all = verify_umount, 75 }; 76