shmem: set a_ops earlier in shmem_symlink
[sfrench/cifs-2.6.git] / mm / shmem.c
index f607b0cab7e4e2a0b8593fc0ecc32e5579649bdd..1900916aa84d13f722d36eba3d8006106e788f63 100644 (file)
@@ -3506,10 +3506,10 @@ static int shmem_symlink(struct mnt_idmap *idmap, struct inode *dir,
                inode->i_op = &shmem_short_symlink_operations;
        } else {
                inode_nohighmem(inode);
+               inode->i_mapping->a_ops = &shmem_aops;
                error = shmem_get_folio(inode, 0, &folio, SGP_WRITE);
                if (error)
                        goto out_remove_offset;
-               inode->i_mapping->a_ops = &shmem_aops;
                inode->i_op = &shmem_symlink_inode_operations;
                memcpy(folio_address(folio), symname, len);
                folio_mark_uptodate(folio);