diff options
author | Paul Mackerras <paulus@samba.org> | 2006-03-17 12:01:19 +1100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-03-17 12:01:19 +1100 |
commit | 23dd64011285010ac291f7dddf6e287bdb43a0ad (patch) | |
tree | 0e4f4569d38d82f4dceb4150d5ad940e0fd5f24f /fs/namei.c | |
parent | 516450179454de9e689e0a53ed8f34b896e8651c (diff) | |
parent | 485ff09990416c75ae9593ddc71619939ab9dd51 (diff) | |
download | kernel_samsung_tuna-23dd64011285010ac291f7dddf6e287bdb43a0ad.zip kernel_samsung_tuna-23dd64011285010ac291f7dddf6e287bdb43a0ad.tar.gz kernel_samsung_tuna-23dd64011285010ac291f7dddf6e287bdb43a0ad.tar.bz2 |
Merge ../linux-2.6
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -2613,13 +2613,15 @@ void page_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) } } -int page_symlink(struct inode *inode, const char *symname, int len) +int __page_symlink(struct inode *inode, const char *symname, int len, + gfp_t gfp_mask) { struct address_space *mapping = inode->i_mapping; - struct page *page = grab_cache_page(mapping, 0); + struct page *page; int err = -ENOMEM; char *kaddr; + page = find_or_create_page(mapping, 0, gfp_mask); if (!page) goto fail; err = mapping->a_ops->prepare_write(NULL, page, 0, len-1); @@ -2654,6 +2656,12 @@ fail: return err; } +int page_symlink(struct inode *inode, const char *symname, int len) +{ + return __page_symlink(inode, symname, len, + mapping_gfp_mask(inode->i_mapping)); +} + struct inode_operations page_symlink_inode_operations = { .readlink = generic_readlink, .follow_link = page_follow_link_light, @@ -2672,6 +2680,7 @@ EXPORT_SYMBOL(lookup_one_len); EXPORT_SYMBOL(page_follow_link_light); EXPORT_SYMBOL(page_put_link); EXPORT_SYMBOL(page_readlink); +EXPORT_SYMBOL(__page_symlink); EXPORT_SYMBOL(page_symlink); EXPORT_SYMBOL(page_symlink_inode_operations); EXPORT_SYMBOL(path_lookup); |