diff --git a/gcip-kernel-driver/drivers/gcip/iif/iif-fence.c b/gcip-kernel-driver/drivers/gcip/iif/iif-fence.c
index 94333fa..5834af5 100644
--- a/gcip-kernel-driver/drivers/gcip/iif/iif-fence.c
+++ b/gcip-kernel-driver/drivers/gcip/iif/iif-fence.c
@@ -161,7 +161,7 @@
 {
 	lockdep_assert_held(&fence->outstanding_waiters_lock);
 
-	if (!fence->outstanding_waiters && fence->state != IIF_FENCE_STATE_FILE_CREATED)
+	if (!fence->outstanding_waiters && !atomic_read(&fence->num_sync_file))
 		iif_fence_retire(fence);
 }
 
@@ -230,6 +230,7 @@
 	iif_fence_table_init_fence_entry(&mgr->fence_table, fence->id, total_signalers);
 	INIT_LIST_HEAD(&fence->poll_cb_list);
 	INIT_LIST_HEAD(&fence->all_signaler_submitted_cb_list);
+	atomic_set(&fence->num_sync_file, 0);
 
 	return 0;
 }
@@ -237,45 +238,21 @@
 int iif_fence_install_fd(struct iif_fence *fence)
 {
 	struct iif_sync_file *sync_file;
-	int fd, ret;
+	int fd;
 
-	spin_lock(&fence->outstanding_waiters_lock);
-
-	if (fence->state != IIF_FENCE_STATE_INITIALIZED) {
-		if (iif_fence_has_retired(fence)) {
-			pr_err("The fence is already retired, can't install an FD");
-			ret = -EPERM;
-		} else {
-			pr_err("Only one file can be bound to an fence");
-			ret = -EEXIST;
-		}
-		goto err_unlock;
-	}
-
-	ret = get_unused_fd_flags(O_CLOEXEC);
-	if (ret < 0)
-		goto err_unlock;
-	fd = ret;
+	fd = get_unused_fd_flags(O_CLOEXEC);
+	if (fd < 0)
+		return fd;
 
 	sync_file = iif_sync_file_create(fence);
 	if (IS_ERR(sync_file)) {
-		ret = PTR_ERR(sync_file);
-		goto err_put_fd;
+		put_unused_fd(fd);
+		return PTR_ERR(sync_file);
 	}
 
 	fd_install(fd, sync_file->file);
-	fence->state = IIF_FENCE_STATE_FILE_CREATED;
-
-	spin_unlock(&fence->outstanding_waiters_lock);
 
 	return fd;
-
-err_put_fd:
-	put_unused_fd(fd);
-err_unlock:
-	spin_unlock(&fence->outstanding_waiters_lock);
-
-	return ret;
 }
 
 void iif_fence_on_sync_file_release(struct iif_fence *fence)
@@ -283,10 +260,7 @@
 	unsigned long flags;
 
 	spin_lock_irqsave(&fence->outstanding_waiters_lock, flags);
-
-	fence->state = IIF_FENCE_STATE_FILE_RELEASED;
 	iif_fence_retire_if_possible_locked(fence);
-
 	spin_unlock_irqrestore(&fence->outstanding_waiters_lock, flags);
 }
 
diff --git a/gcip-kernel-driver/drivers/gcip/iif/iif-sync-file.c b/gcip-kernel-driver/drivers/gcip/iif/iif-sync-file.c
index 81f06e7..f4982d3 100644
--- a/gcip-kernel-driver/drivers/gcip/iif/iif-sync-file.c
+++ b/gcip-kernel-driver/drivers/gcip/iif/iif-sync-file.c
@@ -6,6 +6,7 @@
  */
 
 #include <linux/anon_inodes.h>
+#include <linux/atomic.h>
 #include <linux/bitops.h>
 #include <linux/file.h>
 #include <linux/fs.h>
@@ -28,7 +29,8 @@
 {
 	struct iif_sync_file *sync_file = file->private_data;
 
-	iif_fence_on_sync_file_release(sync_file->fence);
+	if (atomic_dec_and_test(&sync_file->fence->num_sync_file))
+		iif_fence_on_sync_file_release(sync_file->fence);
 	if (test_bit(IIF_SYNC_FILE_FLAGS_POLL_ENABLED, &sync_file->flags))
 		iif_fence_remove_poll_callback(sync_file->fence, &sync_file->poll_cb);
 	iif_fence_put(sync_file->fence);
@@ -109,6 +111,7 @@
 	}
 
 	sync_file->fence = iif_fence_get(fence);
+	atomic_inc(&fence->num_sync_file);
 
 	init_waitqueue_head(&sync_file->wq);
 	INIT_LIST_HEAD(&sync_file->poll_cb.node);
diff --git a/gcip-kernel-driver/include/gcip/iif/iif-fence.h b/gcip-kernel-driver/include/gcip/iif/iif-fence.h
index 933b3eb..befd745 100644
--- a/gcip-kernel-driver/include/gcip/iif/iif-fence.h
+++ b/gcip-kernel-driver/include/gcip/iif/iif-fence.h
@@ -46,10 +46,6 @@
 enum iif_fence_state {
 	/* Initial state. */
 	IIF_FENCE_STATE_INITIALIZED,
-	/* There is a sync file bound with this fence. */
-	IIF_FENCE_STATE_FILE_CREATED,
-	/* The file bound to this fence has been released. */
-	IIF_FENCE_STATE_FILE_RELEASED,
 	/* The fence ID has been retired. */
 	IIF_FENCE_STATE_RETIRED,
 };
@@ -95,6 +91,8 @@
 	int signal_error;
 	/* Will be set to a negative errno if waiting the signaler submission fails. */
 	int all_signaler_submitted_error;
+	/* The number of sync_file(s) bound to the fence. */
+	atomic_t num_sync_file;
 };
 
 /* Operators of `struct iif_fence`. */
