Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-4223 utils: fixing loop leaking in utils
[fs/lustre-release.git]
/
lustre
/
utils
/
mount_utils.c
diff --git
a/lustre/utils/mount_utils.c
b/lustre/utils/mount_utils.c
index
e0502fe
..
5c9a845
100644
(file)
--- a/
lustre/utils/mount_utils.c
+++ b/
lustre/utils/mount_utils.c
@@
-368,11
+368,23
@@
int loop_setup(struct mkfs_opts *mop)
int loop_cleanup(struct mkfs_opts *mop)
{
char cmd[150];
int loop_cleanup(struct mkfs_opts *mop)
{
char cmd[150];
- int ret = 1;
+ int ret = 0;
+
if ((mop->mo_flags & MO_IS_LOOP) && *mop->mo_loopdev) {
if ((mop->mo_flags & MO_IS_LOOP) && *mop->mo_loopdev) {
+ int tries;
+
sprintf(cmd, "losetup -d %s", mop->mo_loopdev);
sprintf(cmd, "losetup -d %s", mop->mo_loopdev);
- ret = run_command(cmd, sizeof(cmd));
+ for (tries = 0; tries < 3; tries++) {
+ ret = run_command(cmd, sizeof(cmd));
+ if (ret == 0)
+ break;
+ sleep(1);
+ }
}
}
+
+ if (ret != 0)
+ fprintf(stderr, "cannot cleanup %s: rc = %d\n",
+ mop->mo_loopdev, ret);
return ret;
}
return ret;
}