diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index 9a08acc..5db1b69 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -953,7 +953,7 @@
 	ktime_t expires, *timeout = NULL;
 	struct timespec ts;
 	struct posix_msg_tree_node *new_leaf = NULL;
-	int ret = 0;
+	int ret = 0, fput_needed;
 
 	if (u_abs_timeout) {
 		int res = prepare_timeout(u_abs_timeout, &expires, &ts);
@@ -967,7 +967,7 @@
 
 	audit_mq_sendrecv(mqdes, msg_len, msg_prio, timeout ? &ts : NULL);
 
-	filp = fget(mqdes);
+	filp = fget_light(mqdes, &fput_needed);
 	if (unlikely(!filp)) {
 		ret = -EBADF;
 		goto out;
@@ -1056,7 +1056,7 @@
 	if (ret)
 		free_msg(msg_ptr);
 out_fput:
-	fput(filp);
+	fput_light(filp, fput_needed);
 out:
 	return ret;
 }
@@ -1074,6 +1074,7 @@
 	ktime_t expires, *timeout = NULL;
 	struct timespec ts;
 	struct posix_msg_tree_node *new_leaf = NULL;
+	int fput_needed;
 
 	if (u_abs_timeout) {
 		int res = prepare_timeout(u_abs_timeout, &expires, &ts);
@@ -1084,7 +1085,7 @@
 
 	audit_mq_sendrecv(mqdes, msg_len, 0, timeout ? &ts : NULL);
 
-	filp = fget(mqdes);
+	filp = fget_light(mqdes, &fput_needed);
 	if (unlikely(!filp)) {
 		ret = -EBADF;
 		goto out;
@@ -1160,7 +1161,7 @@
 		free_msg(msg_ptr);
 	}
 out_fput:
-	fput(filp);
+	fput_light(filp, fput_needed);
 out:
 	return ret;
 }
@@ -1173,7 +1174,7 @@
 SYSCALL_DEFINE2(mq_notify, mqd_t, mqdes,
 		const struct sigevent __user *, u_notification)
 {
-	int ret;
+	int ret, fput_needed;
 	struct file *filp;
 	struct sock *sock;
 	struct inode *inode;
@@ -1220,13 +1221,13 @@
 			skb_put(nc, NOTIFY_COOKIE_LEN);
 			/* and attach it to the socket */
 retry:
-			filp = fget(notification.sigev_signo);
+			filp = fget_light(notification.sigev_signo, &fput_needed);
 			if (!filp) {
 				ret = -EBADF;
 				goto out;
 			}
 			sock = netlink_getsockbyfilp(filp);
-			fput(filp);
+			fput_light(filp, fput_needed);
 			if (IS_ERR(sock)) {
 				ret = PTR_ERR(sock);
 				sock = NULL;
@@ -1245,7 +1246,7 @@
 		}
 	}
 
-	filp = fget(mqdes);
+	filp = fget_light(mqdes, &fput_needed);
 	if (!filp) {
 		ret = -EBADF;
 		goto out;
@@ -1292,7 +1293,7 @@
 	}
 	spin_unlock(&info->lock);
 out_fput:
-	fput(filp);
+	fput_light(filp, fput_needed);
 out:
 	if (sock) {
 		netlink_detachskb(sock, nc);
@@ -1308,6 +1309,7 @@
 {
 	int ret;
 	struct mq_attr mqstat, omqstat;
+	int fput_needed;
 	struct file *filp;
 	struct inode *inode;
 	struct mqueue_inode_info *info;
@@ -1319,7 +1321,7 @@
 			return -EINVAL;
 	}
 
-	filp = fget(mqdes);
+	filp = fget_light(mqdes, &fput_needed);
 	if (!filp) {
 		ret = -EBADF;
 		goto out;
@@ -1356,7 +1358,7 @@
 		ret = -EFAULT;
 
 out_fput:
-	fput(filp);
+	fput_light(filp, fput_needed);
 out:
 	return ret;
 }
