diff --git a/fs/open.c b/fs/open.c
index 5720854156dbd61e28598da83a529294401eb119..c4b8b523f0d5d93cc22b585e8e12de8ab7ca0a7a 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -1041,9 +1041,12 @@ SYSCALL_DEFINE2(creat, const char __user *, pathname, umode_t, mode)
 int filp_close(struct file *filp, fl_owner_t id)
 {
 	int retval = 0;
+	long ret;
 
-	if (!file_count(filp)) {
-		printk(KERN_ERR "VFS: Close: file count is 0\n");
+	ret = file_count(filp);
+	if (ret <= 0) {
+		printk(KERN_ERR "VFS: Close: file count is %ld\n", ret);
+		WARN_ON(ret < 0);
 		return 0;
 	}