diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c
index 1a4eee620b0d91aea2bc46a1b59484eecb572aac..3662dd44896b71586e3a493193261d3a1adf92a6 100644
--- a/fs/anon_inodes.c
+++ b/fs/anon_inodes.c
@@ -116,7 +116,7 @@ int anon_inode_getfd(const char *name, const struct file_operations *fops,
 	file->f_mapping = anon_inode_inode->i_mapping;
 
 	file->f_pos = 0;
-	file->f_flags = O_RDWR;
+	file->f_flags = O_RDWR | (flags & O_NONBLOCK);
 	file->f_version = 0;
 	file->private_data = priv;