|
@@ -1630,8 +1630,8 @@ shmem_write_end(struct file *file, struct address_space *mapping,
|
|
if (pos + copied > inode->i_size)
|
|
if (pos + copied > inode->i_size)
|
|
i_size_write(inode, pos + copied);
|
|
i_size_write(inode, pos + copied);
|
|
|
|
|
|
- unlock_page(page);
|
|
|
|
set_page_dirty(page);
|
|
set_page_dirty(page);
|
|
|
|
+ unlock_page(page);
|
|
page_cache_release(page);
|
|
page_cache_release(page);
|
|
|
|
|
|
return copied;
|
|
return copied;
|
|
@@ -1968,13 +1968,13 @@ static int shmem_symlink(struct inode *dir, struct dentry *dentry, const char *s
|
|
iput(inode);
|
|
iput(inode);
|
|
return error;
|
|
return error;
|
|
}
|
|
}
|
|
- unlock_page(page);
|
|
|
|
inode->i_mapping->a_ops = &shmem_aops;
|
|
inode->i_mapping->a_ops = &shmem_aops;
|
|
inode->i_op = &shmem_symlink_inode_operations;
|
|
inode->i_op = &shmem_symlink_inode_operations;
|
|
kaddr = kmap_atomic(page, KM_USER0);
|
|
kaddr = kmap_atomic(page, KM_USER0);
|
|
memcpy(kaddr, symname, len);
|
|
memcpy(kaddr, symname, len);
|
|
kunmap_atomic(kaddr, KM_USER0);
|
|
kunmap_atomic(kaddr, KM_USER0);
|
|
set_page_dirty(page);
|
|
set_page_dirty(page);
|
|
|
|
+ unlock_page(page);
|
|
page_cache_release(page);
|
|
page_cache_release(page);
|
|
}
|
|
}
|
|
if (dir->i_mode & S_ISGID)
|
|
if (dir->i_mode & S_ISGID)
|