mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
merge nfs bugfixes into nfsd for-3.19 branch
In addition to nfsd bugfixes, there are some fixes in -rc5 for client bugs that can interfere with my testing.
This commit is contained in:
commit
56429e9b3b
1364 changed files with 24232 additions and 11489 deletions
23
fs/open.c
23
fs/open.c
|
@ -824,8 +824,7 @@ struct file *dentry_open(const struct path *path, int flags,
|
|||
f = get_empty_filp();
|
||||
if (!IS_ERR(f)) {
|
||||
f->f_flags = flags;
|
||||
f->f_path = *path;
|
||||
error = do_dentry_open(f, NULL, cred);
|
||||
error = vfs_open(path, f, cred);
|
||||
if (!error) {
|
||||
/* from now on we need fput() to dispose of f */
|
||||
error = open_check_o_direct(f);
|
||||
|
@ -842,6 +841,26 @@ struct file *dentry_open(const struct path *path, int flags,
|
|||
}
|
||||
EXPORT_SYMBOL(dentry_open);
|
||||
|
||||
/**
|
||||
* vfs_open - open the file at the given path
|
||||
* @path: path to open
|
||||
* @filp: newly allocated file with f_flag initialized
|
||||
* @cred: credentials to use
|
||||
*/
|
||||
int vfs_open(const struct path *path, struct file *filp,
|
||||
const struct cred *cred)
|
||||
{
|
||||
struct inode *inode = path->dentry->d_inode;
|
||||
|
||||
if (inode->i_op->dentry_open)
|
||||
return inode->i_op->dentry_open(path->dentry, filp, cred);
|
||||
else {
|
||||
filp->f_path = *path;
|
||||
return do_dentry_open(filp, NULL, cred);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(vfs_open);
|
||||
|
||||
static inline int build_open_flags(int flags, umode_t mode, struct open_flags *op)
|
||||
{
|
||||
int lookup_flags = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue