Hi Al, Today's linux-next merge of the vfs tree got a conflict in fs/ext4/symlink.c between commit fd64e6fd4575 ("ext4 crypto: reorganize how we store keys in the inode") from the ext4 tree and commits 5542f03602af ("ext4: split inode_operations for encrypted symlinks off the rest") and cf41cea5a829 ("new ->follow_link() and ->put_link() calling conventions") from the vfs tree. I fixed it up (I think - see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc fs/ext4/symlink.c index 32870881188e,ba5bd18a9825..000000000000 --- a/fs/ext4/symlink.c +++ b/fs/ext4/symlink.c @@@ -34,20 -35,19 +34,17 @@@ static const char *ext4_follow_link(str int res; u32 plen, max_size = inode->i_sb->s_blocksize; - if (!ext4_encrypted_inode(inode)) - return page_follow_link_light(dentry, nd); - - ctx = ext4_get_fname_crypto_ctx(inode, inode->i_sb->s_blocksize); - if (IS_ERR(ctx)) - return ERR_CAST(ctx); + res = ext4_setup_fname_crypto(inode); + if (res) + return ERR_PTR(res); if (ext4_inode_is_fast_symlink(inode)) { caddr = (char *) EXT4_I(inode)->i_data; max_size = sizeof(EXT4_I(inode)->i_data); } else { cpage = read_mapping_page(inode->i_mapping, 0, NULL); - if (IS_ERR(cpage)) { - ext4_put_fname_crypto_ctx(&ctx); + if (IS_ERR(cpage)) - return cpage; + return ERR_CAST(cpage); - } caddr = kmap(cpage); caddr[size] = 0; } @@@ -78,13 -77,14 +75,12 @@@ /* Null-terminate the name */ if (res <= plen) paddr[res] = '\0'; - nd_set_link(nd, paddr); - ext4_put_fname_crypto_ctx(&ctx); if (cpage) { kunmap(cpage); page_cache_release(cpage); } - return NULL; + return *cookie = paddr; errout: - ext4_put_fname_crypto_ctx(&ctx); if (cpage) { kunmap(cpage); page_cache_release(cpage);
Attachment:
pgpQt7MeuFMAq.pgp
Description: OpenPGP digital signature