touch_atime(&file->f_path);
 }
 
-static rwf_t ovl_iocb_to_rwf(int ifl)
+#define OVL_IOCB_MASK \
+       (IOCB_NOWAIT | IOCB_HIPRI | IOCB_DSYNC | IOCB_SYNC)
+
+static rwf_t iocb_to_rw_flags(int flags)
 {
-       rwf_t flags = 0;
-
-       if (ifl & IOCB_NOWAIT)
-               flags |= RWF_NOWAIT;
-       if (ifl & IOCB_HIPRI)
-               flags |= RWF_HIPRI;
-       if (ifl & IOCB_DSYNC)
-               flags |= RWF_DSYNC;
-       if (ifl & IOCB_SYNC)
-               flags |= RWF_SYNC;
-
-       return flags;
+       return (__force rwf_t)(flags & OVL_IOCB_MASK);
 }
 
 static inline void ovl_aio_put(struct ovl_aio_req *aio_req)
 
        old_cred = ovl_override_creds(file_inode(file)->i_sb);
        if (is_sync_kiocb(iocb)) {
-               ret = vfs_iter_read(real.file, iter, &iocb->ki_pos,
-                                   ovl_iocb_to_rwf(iocb->ki_flags));
+               rwf_t rwf = iocb_to_rw_flags(iocb->ki_flags);
+
+               ret = vfs_iter_read(real.file, iter, &iocb->ki_pos, rwf);
        } else {
                struct ovl_aio_req *aio_req;
 
 
        old_cred = ovl_override_creds(file_inode(file)->i_sb);
        if (is_sync_kiocb(iocb)) {
+               rwf_t rwf = iocb_to_rw_flags(ifl);
+
                file_start_write(real.file);
-               ret = vfs_iter_write(real.file, iter, &iocb->ki_pos,
-                                    ovl_iocb_to_rwf(ifl));
+               ret = vfs_iter_write(real.file, iter, &iocb->ki_pos, rwf);
                file_end_write(real.file);
                /* Update size */
                ovl_copyattr(inode);