Lines Matching refs:fid
850 struct p9_fid *fid;
853 fid = kzalloc(sizeof(*fid), GFP_KERNEL);
854 if (!fid)
857 fid->mode = -1;
858 fid->uid = current_fsuid();
859 fid->clnt = clnt;
860 refcount_set(&fid->count, 1);
864 ret = idr_alloc_u32(&clnt->fids, fid, &fid->fid, P9_NOFID - 1,
869 trace_9p_fid_ref(fid, P9_FID_REF_CREATE);
870 return fid;
873 kfree(fid);
877 static void p9_fid_destroy(struct p9_fid *fid)
882 p9_debug(P9_DEBUG_FID, "fid %d\n", fid->fid);
883 trace_9p_fid_ref(fid, P9_FID_REF_DESTROY);
884 clnt = fid->clnt;
886 idr_remove(&clnt->fids, fid->fid);
888 kfree(fid->rdir);
889 kfree(fid);
895 void do_trace_9p_fid_get(struct p9_fid *fid)
897 trace_9p_fid_ref(fid, P9_FID_REF_GET);
901 void do_trace_9p_fid_put(struct p9_fid *fid)
903 trace_9p_fid_ref(fid, P9_FID_REF_PUT);
1058 struct p9_fid *fid;
1068 idr_for_each_entry(&clnt->fids, fid, id) {
1069 pr_info("Found fid %d not clunked\n", fid->fid);
1070 p9_fid_destroy(fid);
1100 struct p9_fid *fid;
1104 afid ? afid->fid : -1, uname, aname);
1105 fid = p9_fid_create(clnt);
1106 if (!fid) {
1110 fid->uid = n_uname;
1112 req = p9_client_rpc(clnt, P9_TATTACH, "ddss?u", fid->fid,
1113 afid ? afid->fid : P9_NOFID, uname, aname, n_uname);
1129 memmove(&fid->qid, &qid, sizeof(struct p9_qid));
1132 return fid;
1135 if (fid)
1136 p9_fid_destroy(fid);
1146 struct p9_fid *fid;
1154 fid = p9_fid_create(clnt);
1155 if (!fid) {
1160 fid->uid = oldfid->uid;
1162 fid = oldfid;
1166 oldfid->fid, fid->fid, nwname, wnames ? wnames[0] : NULL);
1167 req = p9_client_rpc(clnt, P9_TWALK, "ddT", oldfid->fid, fid->fid,
1196 memmove(&fid->qid, &wqids[nwqids - 1], sizeof(struct p9_qid));
1198 memmove(&fid->qid, &oldfid->qid, sizeof(struct p9_qid));
1201 return fid;
1205 p9_fid_put(fid);
1206 fid = NULL;
1209 if (fid && fid != oldfid)
1210 p9_fid_destroy(fid);
1216 int p9_client_open(struct p9_fid *fid, int mode)
1224 clnt = fid->clnt;
1225 p9_debug(P9_DEBUG_9P, ">>> %s fid %d mode %d\n",
1226 p9_is_proto_dotl(clnt) ? "TLOPEN" : "TOPEN", fid->fid, mode);
1228 if (fid->mode != -1)
1232 req = p9_client_rpc(clnt, P9_TLOPEN, "dd", fid->fid, mode & P9L_MODE_MASK);
1234 req = p9_client_rpc(clnt, P9_TOPEN, "db", fid->fid, mode & P9L_MODE_MASK);
1250 memmove(&fid->qid, &qid, sizeof(struct p9_qid));
1251 fid->mode = mode;
1252 fid->iounit = iounit;
1270 ">>> TLCREATE fid %d name %s flags %d mode %d gid %d\n",
1271 ofid->fid, name, flags, mode,
1278 req = p9_client_rpc(clnt, P9_TLCREATE, "dsddg", ofid->fid, name, flags,
1305 int p9_client_fcreate(struct p9_fid *fid, const char *name, u32 perm, int mode,
1314 p9_debug(P9_DEBUG_9P, ">>> TCREATE fid %d name %s perm %d mode %d\n",
1315 fid->fid, name, perm, mode);
1316 clnt = fid->clnt;
1318 if (fid->mode != -1)
1321 req = p9_client_rpc(clnt, P9_TCREATE, "dsdb?s", fid->fid, name, perm,
1337 memmove(&fid->qid, &qid, sizeof(struct p9_qid));
1338 fid->mode = mode;
1339 fid->iounit = iounit;
1356 dfid->fid, name, symtgt);
1359 req = p9_client_rpc(clnt, P9_TSYMLINK, "dssg", dfid->fid, name, symtgt,
1388 dfid->fid, oldfid->fid, newname);
1390 req = p9_client_rpc(clnt, P9_TLINK, "dds", dfid->fid, oldfid->fid,
1401 int p9_client_fsync(struct p9_fid *fid, int datasync)
1407 p9_debug(P9_DEBUG_9P, ">>> TFSYNC fid %d datasync:%d\n",
1408 fid->fid, datasync);
1409 clnt = fid->clnt;
1411 req = p9_client_rpc(clnt, P9_TFSYNC, "dd", fid->fid, datasync);
1417 p9_debug(P9_DEBUG_9P, "<<< RFSYNC fid %d\n", fid->fid);
1426 int p9_client_clunk(struct p9_fid *fid)
1434 p9_debug(P9_DEBUG_9P, ">>> TCLUNK fid %d (try %d)\n",
1435 fid->fid, retries);
1436 clnt = fid->clnt;
1438 req = p9_client_rpc(clnt, P9_TCLUNK, "d", fid->fid);
1444 p9_debug(P9_DEBUG_9P, "<<< RCLUNK fid %d\n", fid->fid);
1450 * leak fid until umount.
1456 p9_fid_destroy(fid);
1462 int p9_client_remove(struct p9_fid *fid)
1468 p9_debug(P9_DEBUG_9P, ">>> TREMOVE fid %d\n", fid->fid);
1469 clnt = fid->clnt;
1471 req = p9_client_rpc(clnt, P9_TREMOVE, "d", fid->fid);
1477 p9_debug(P9_DEBUG_9P, "<<< RREMOVE fid %d\n", fid->fid);
1482 p9_fid_put(fid);
1484 p9_fid_destroy(fid);
1495 p9_debug(P9_DEBUG_9P, ">>> TUNLINKAT fid %d %s %d\n",
1496 dfid->fid, name, flags);
1499 req = p9_client_rpc(clnt, P9_TUNLINKAT, "dsd", dfid->fid, name, flags);
1504 p9_debug(P9_DEBUG_9P, "<<< RUNLINKAT fid %d %s\n", dfid->fid, name);
1513 p9_client_read(struct p9_fid *fid, u64 offset, struct iov_iter *to, int *err)
1521 count = p9_client_read_once(fid, offset, to, err);
1532 p9_client_read_once(struct p9_fid *fid, u64 offset, struct iov_iter *to,
1535 struct p9_client *clnt = fid->clnt;
1542 p9_debug(P9_DEBUG_9P, ">>> TREAD fid %d offset %llu %zu\n",
1543 fid->fid, offset, iov_iter_count(to));
1545 rsize = fid->iounit;
1558 0, 11, "dqd", fid->fid,
1562 req = p9_client_rpc(clnt, P9_TREAD, "dqd", fid->fid, offset,
1605 p9_client_write(struct p9_fid *fid, u64 offset, struct iov_iter *from, int *err)
1607 struct p9_client *clnt = fid->clnt;
1612 p9_debug(P9_DEBUG_9P, ">>> TWRITE fid %d offset %llu count %zd\n",
1613 fid->fid, offset, iov_iter_count(from));
1617 int rsize = fid->iounit;
1630 fid->fid, offset, rsize);
1632 req = p9_client_rpc(clnt, P9_TWRITE, "dqV", fid->fid,
1664 struct p9_wstat *p9_client_stat(struct p9_fid *fid)
1672 p9_debug(P9_DEBUG_9P, ">>> TSTAT fid %d\n", fid->fid);
1678 clnt = fid->clnt;
1680 req = p9_client_rpc(clnt, P9_TSTAT, "d", fid->fid);
1715 struct p9_stat_dotl *p9_client_getattr_dotl(struct p9_fid *fid,
1723 p9_debug(P9_DEBUG_9P, ">>> TGETATTR fid %d, request_mask %lld\n",
1724 fid->fid, request_mask);
1730 clnt = fid->clnt;
1732 req = p9_client_rpc(clnt, P9_TGETATTR, "dq", fid->fid, request_mask);
1806 int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst)
1812 clnt = fid->clnt;
1814 p9_debug(P9_DEBUG_9P, ">>> TWSTAT fid %d\n",
1815 fid->fid);
1830 fid->fid, wst->size + 2, wst);
1836 p9_debug(P9_DEBUG_9P, "<<< RWSTAT fid %d\n", fid->fid);
1844 int p9_client_setattr(struct p9_fid *fid, struct p9_iattr_dotl *p9attr)
1850 clnt = fid->clnt;
1851 p9_debug(P9_DEBUG_9P, ">>> TSETATTR fid %d\n", fid->fid);
1862 req = p9_client_rpc(clnt, P9_TSETATTR, "dI", fid->fid, p9attr);
1868 p9_debug(P9_DEBUG_9P, "<<< RSETATTR fid %d\n", fid->fid);
1875 int p9_client_statfs(struct p9_fid *fid, struct p9_rstatfs *sb)
1881 clnt = fid->clnt;
1883 p9_debug(P9_DEBUG_9P, ">>> TSTATFS fid %d\n", fid->fid);
1885 req = p9_client_rpc(clnt, P9_TSTATFS, "d", fid->fid);
1901 "<<< RSTATFS fid %d type 0x%x bsize %u blocks %llu bfree %llu bavail %llu files %llu ffree %llu fsid %llu namelen %u\n",
1902 fid->fid, sb->type, sb->bsize, sb->blocks, sb->bfree,
1911 int p9_client_rename(struct p9_fid *fid,
1918 clnt = fid->clnt;
1920 p9_debug(P9_DEBUG_9P, ">>> TRENAME fid %d newdirfid %d name %s\n",
1921 fid->fid, newdirfid->fid, name);
1923 req = p9_client_rpc(clnt, P9_TRENAME, "dds", fid->fid,
1924 newdirfid->fid, name);
1930 p9_debug(P9_DEBUG_9P, "<<< RRENAME fid %d\n", fid->fid);
1949 olddirfid->fid, old_name, newdirfid->fid, new_name);
1951 req = p9_client_rpc(clnt, P9_TRENAMEAT, "dsds", olddirfid->fid,
1952 old_name, newdirfid->fid, new_name);
1959 newdirfid->fid, new_name);
1967 /* An xattrwalk without @attr_name gives the fid for the lisxattr namespace
1985 file_fid->fid, attr_fid->fid, attr_name);
1988 file_fid->fid, attr_fid->fid, attr_name);
2000 p9_debug(P9_DEBUG_9P, "<<< RXATTRWALK fid %d size %llu\n",
2001 attr_fid->fid, *attr_size);
2014 int p9_client_xattrcreate(struct p9_fid *fid, const char *name,
2022 ">>> TXATTRCREATE fid %d name %s size %llu flag %d\n",
2023 fid->fid, name, attr_size, flags);
2024 clnt = fid->clnt;
2026 fid->fid, name, attr_size, flags);
2031 p9_debug(P9_DEBUG_9P, "<<< RXATTRCREATE fid %d\n", fid->fid);
2038 int p9_client_readdir(struct p9_fid *fid, char *data, u32 count, u64 offset)
2049 p9_debug(P9_DEBUG_9P, ">>> TREADDIR fid %d offset %llu count %d\n",
2050 fid->fid, offset, count);
2052 clnt = fid->clnt;
2054 rsize = fid->iounit;
2067 11, "dqd", fid->fid, offset, rsize);
2070 req = p9_client_rpc(clnt, P9_TREADDIR, "dqd", fid->fid,
2103 int p9_client_mknod_dotl(struct p9_fid *fid, const char *name, int mode,
2110 clnt = fid->clnt;
2112 ">>> TMKNOD fid %d name %s mode %d major %d minor %d\n",
2113 fid->fid, name, mode, MAJOR(rdev), MINOR(rdev));
2114 req = p9_client_rpc(clnt, P9_TMKNOD, "dsdddg", fid->fid, name, mode,
2133 int p9_client_mkdir_dotl(struct p9_fid *fid, const char *name, int mode,
2140 clnt = fid->clnt;
2141 p9_debug(P9_DEBUG_9P, ">>> TMKDIR fid %d name %s mode %d gid %d\n",
2142 fid->fid, name, mode, from_kgid(&init_user_ns, gid));
2144 fid->fid, name, mode, gid);
2162 int p9_client_lock_dotl(struct p9_fid *fid, struct p9_flock *flock, u8 *status)
2168 clnt = fid->clnt;
2170 ">>> TLOCK fid %d type %i flags %d start %lld length %lld proc_id %d client_id %s\n",
2171 fid->fid, flock->type, flock->flags, flock->start,
2174 req = p9_client_rpc(clnt, P9_TLOCK, "dbdqqds", fid->fid, flock->type,
2193 int p9_client_getlock_dotl(struct p9_fid *fid, struct p9_getlock *glock)
2199 clnt = fid->clnt;
2201 ">>> TGETLOCK fid %d, type %i start %lld length %lld proc_id %d client_id %s\n",
2202 fid->fid, glock->type, glock->start, glock->length,
2205 req = p9_client_rpc(clnt, P9_TGETLOCK, "dbqqds", fid->fid,
2229 int p9_client_readlink(struct p9_fid *fid, char **target)
2235 clnt = fid->clnt;
2236 p9_debug(P9_DEBUG_9P, ">>> TREADLINK fid %d\n", fid->fid);
2238 req = p9_client_rpc(clnt, P9_TREADLINK, "d", fid->fid);