summaryrefslogtreecommitdiffstats
path: root/libmount/src/fs.c
diff options
context:
space:
mode:
authorKarel Zak2014-11-19 11:06:24 +0100
committerKarel Zak2014-11-19 11:06:24 +0100
commita504eaed651d1648bbe2f47562537effdda76367 (patch)
treebf0c99057d7bb2d5f94d685d89c9c3bf94989b7b /libmount/src/fs.c
parentmisc: use monotonic time rater than gettimeofday (diff)
downloadkernel-qcow2-util-linux-a504eaed651d1648bbe2f47562537effdda76367.tar.gz
kernel-qcow2-util-linux-a504eaed651d1648bbe2f47562537effdda76367.tar.xz
kernel-qcow2-util-linux-a504eaed651d1648bbe2f47562537effdda76367.zip
libmount: improve mnt_reset_fs()
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libmount/src/fs.c')
-rw-r--r--libmount/src/fs.c37
1 files changed, 20 insertions, 17 deletions
diff --git a/libmount/src/fs.c b/libmount/src/fs.c
index fe3260bb3..2cd01a9f5 100644
--- a/libmount/src/fs.c
+++ b/libmount/src/fs.c
@@ -51,25 +51,10 @@ void mnt_free_fs(struct libmnt_fs *fs)
{
if (!fs)
return;
- list_del(&fs->ents);
- DBG(FS, ul_debugobj(fs, "free [refcount=%d]", fs->refcount));
- free(fs->source);
- free(fs->bindsrc);
- free(fs->tagname);
- free(fs->tagval);
- free(fs->root);
- free(fs->swaptype);
- free(fs->target);
- free(fs->fstype);
- free(fs->optstr);
- free(fs->vfs_optstr);
- free(fs->fs_optstr);
- free(fs->user_optstr);
- free(fs->attrs);
- free(fs->opt_fields);
- free(fs->comment);
+ DBG(FS, ul_debugobj(fs, "free [refcount=%d]", fs->refcount));
+ mnt_reset_fs(fs);
free(fs);
}
@@ -87,6 +72,24 @@ void mnt_reset_fs(struct libmnt_fs *fs)
return;
ref = fs->refcount;
+
+ list_del(&fs->ents);
+ free(fs->source);
+ free(fs->bindsrc);
+ free(fs->tagname);
+ free(fs->tagval);
+ free(fs->root);
+ free(fs->swaptype);
+ free(fs->target);
+ free(fs->fstype);
+ free(fs->optstr);
+ free(fs->vfs_optstr);
+ free(fs->fs_optstr);
+ free(fs->user_optstr);
+ free(fs->attrs);
+ free(fs->opt_fields);
+ free(fs->comment);
+
memset(fs, 0, sizeof(*fs));
INIT_LIST_HEAD(&fs->ents);
fs->refcount = ref;