// SPDX-License-Identifier: GPL-2.0-only/* * This file contains vfs inode ops for the 9P2000 protocol. * * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> */#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt#include<linux/module.h>#include<linux/errno.h>#include<linux/fs.h>#include<linux/file.h>#include<linux/pagemap.h>#include<linux/stat.h>#include<linux/string.h>#include<linux/inet.h>#include<linux/namei.h>#include<linux/sched.h>#include<linux/slab.h>#include<linux/xattr.h>#include<linux/posix_acl.h>#include<net/9p/9p.h>#include<net/9p/client.h>#include"v9fs.h"#include"v9fs_vfs.h"#include"fid.h"#include"cache.h"#include"xattr.h"#include"acl.h"staticconststructinode_operationsv9fs_dir_inode_operations;staticconststructinode_operationsv9fs_dir_inode_operations_dotu;staticconststructinode_operationsv9fs_file_inode_operations;staticconststructinode_operationsv9fs_symlink_inode_operations;/** * unixmode2p9mode - convert unix mode bits to plan 9 * @v9ses: v9fs session information * @mode: mode to convert * */staticu32unixmode2p9mode(structv9fs_session_info*v9ses,umode_tmode){intres;res=mode&0777;if(S_ISDIR(mode))res|=P9_DMDIR;if(v9fs_proto_dotu(v9ses)){if(v9ses->nodev==0){if(S_ISSOCK(mode))res|=P9_DMSOCKET;if(S_ISFIFO(mode))res|=P9_DMNAMEDPIPE;if(S_ISBLK(