Lines Matching defs:nfsi
157 struct nfs_inode *nfsi = NFS_I(inode);
159 return !time_in_range_open(jiffies, nfsi->read_cache_jiffies, nfsi->read_cache_jiffies + nfsi->attrtimeo);
179 static bool nfs_has_xattr_cache(const struct nfs_inode *nfsi)
181 return nfsi->xattr_cache != NULL;
184 static bool nfs_has_xattr_cache(const struct nfs_inode *nfsi)
192 struct nfs_inode *nfsi = NFS_I(inode);
202 if (!nfs_has_xattr_cache(nfsi))
208 flags |= nfsi->cache_validity;
213 smp_store_release(&nfsi->cache_validity, flags);
216 nfsi->cache_validity & NFS_INO_INVALID_DATA) {
217 nfs_ooo_clear(nfsi);
228 struct nfs_inode *nfsi = NFS_I(inode);
233 nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
234 nfsi->attrtimeo_timestamp = jiffies;
247 nfs_zap_label_cache_locked(nfsi);
426 static void nfs_inode_init_regular(struct nfs_inode *nfsi)
428 atomic_long_set(&nfsi->nrequests, 0);
429 atomic_long_set(&nfsi->redirtied_pages, 0);
430 INIT_LIST_HEAD(&nfsi->commit_info.list);
431 atomic_long_set(&nfsi->commit_info.ncommit, 0);
432 atomic_set(&nfsi->commit_info.rpcs_out, 0);
433 mutex_init(&nfsi->commit_mutex);
436 static void nfs_inode_init_dir(struct nfs_inode *nfsi)
438 nfsi->cache_change_attribute = 0;
439 memset(nfsi->cookieverf, 0, sizeof(nfsi->cookieverf));
440 init_rwsem(&nfsi->rmdir_sem);
476 struct nfs_inode *nfsi = NFS_I(inode);
486 nfsi->cache_validity = 0;
497 nfs_inode_init_regular(nfsi);
503 nfs_inode_init_dir(nfsi);
529 nfsi->write_io = 0;
530 nfsi->read_io = 0;
532 nfsi->read_cache_jiffies = fattr->time_start;
533 nfsi->attr_gencount = fattr->gencount;
582 nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
583 nfsi->attrtimeo_timestamp = now;
584 nfsi->access_cache = RB_ROOT;
1091 struct nfs_inode *nfsi;
1101 nfsi = NFS_I(inode);
1104 if (nfsi->cache_validity & NFS_INO_INVALID_DATA)
1106 if (!list_empty(&nfsi->open_files))
1195 struct nfs_inode *nfsi = NFS_I(inode);
1198 if (list_empty(&nfsi->open_files) &&
1199 nfs_ooo_test(nfsi))
1202 list_add_tail_rcu(&ctx->list, &nfsi->open_files);
1221 struct nfs_inode *nfsi = NFS_I(inode);
1225 list_for_each_entry_rcu(pos, &nfsi->open_files, list) {
1285 struct nfs_inode *nfsi = NFS_I(inode);
1339 if (nfsi->cache_validity & NFS_INO_INVALID_ACL)
1408 struct nfs_inode *nfsi = NFS_I(inode);
1409 unsigned long *bitlock = &nfsi->flags;
1434 if (!(smp_load_acquire(&nfsi->cache_validity) & NFS_INO_INVALID_DATA))
1442 if (nfsi->cache_validity & NFS_INO_INVALID_DATA)
1450 nfsi->cache_validity &= ~NFS_INO_INVALID_DATA;
1451 nfs_ooo_clear(nfsi);
1472 struct nfs_inode *nfsi = NFS_I(inode);
1473 unsigned long *bitlock = &nfsi->flags;
1484 (nfsi->cache_validity & NFS_INO_INVALID_DATA))
1511 static bool nfs_file_has_writers(struct nfs_inode *nfsi)
1513 struct inode *inode = &nfsi->vfs_inode;
1517 if (list_empty(&nfsi->open_files))
1522 static bool nfs_file_has_buffered_writers(struct nfs_inode *nfsi)
1524 return nfs_file_has_writers(nfsi) && nfs_file_io_is_buffered(nfsi);
1574 struct nfs_inode *nfsi = NFS_I(inode);
1587 } else if (nfsi->fileid != fattr->fileid) {
1590 nfsi->fileid == fattr->mounted_on_fileid)
1598 if (!nfs_file_has_buffered_writers(nfsi)) {
1638 nfsi->read_cache_jiffies = fattr->time_start;
1914 static void nfs_ooo_merge(struct nfs_inode *nfsi,
1919 if (nfsi->cache_validity & NFS_INO_DATA_INVAL_DEFER)
1923 if (!nfsi->ooo) {
1924 nfsi->ooo = kmalloc(sizeof(*nfsi->ooo), GFP_ATOMIC);
1925 if (!nfsi->ooo) {
1926 nfsi->cache_validity |= NFS_INO_DATA_INVAL_DEFER;
1929 nfsi->ooo->cnt = 0;
1933 cnt = nfsi->ooo->cnt;
1935 if (end == nfsi->ooo->gap[i].start)
1936 end = nfsi->ooo->gap[i].end;
1937 else if (start == nfsi->ooo->gap[i].end)
1938 start = nfsi->ooo->gap[i].start;
1943 nfsi->ooo->gap[i] = nfsi->ooo->gap[cnt];
1947 if (cnt >= ARRAY_SIZE(nfsi->ooo->gap)) {
1948 nfsi->cache_validity |= NFS_INO_DATA_INVAL_DEFER;
1949 kfree(nfsi->ooo);
1950 nfsi->ooo = NULL;
1953 nfsi->ooo->gap[cnt].start = start;
1954 nfsi->ooo->gap[cnt].end = end;
1957 nfsi->ooo->cnt = cnt;
1960 static void nfs_ooo_record(struct nfs_inode *nfsi,
1969 nfs_ooo_merge(nfsi,
2156 struct nfs_inode *nfsi = NFS_I(inode);
2162 bool have_writers = nfs_file_has_buffered_writers(nfsi);
2177 } else if (nfsi->fileid != fattr->fileid) {
2180 nfsi->fileid == fattr->mounted_on_fileid)
2185 inode->i_sb->s_id, (long long)nfsi->fileid,
2214 nfsi->read_cache_jiffies = fattr->time_start;
2219 save_cache_validity = nfsi->cache_validity;
2220 nfsi->cache_validity &= ~(NFS_INO_INVALID_ATTR
2229 nfsi->cache_validity |=
2239 if (!have_writers && nfsi->ooo && nfsi->ooo->cnt == 1 &&
2240 nfsi->ooo->gap[0].end == inode_peek_iversion_raw(inode)) {
2244 inode_set_iversion_raw(inode, nfsi->ooo->gap[0].start);
2245 kfree(nfsi->ooo);
2246 nfsi->ooo = NULL;
2270 nfs_ooo_record(nfsi, fattr);
2271 nfs_ooo_merge(nfsi, inode_peek_iversion_raw(inode),
2277 nfsi->cache_validity |=
2280 (nfsi->cache_validity & NFS_INO_INVALID_CHANGE) != 0)
2287 nfsi->cache_validity |=
2293 nfsi->cache_validity |=
2317 nfsi->cache_validity |=
2323 nfsi->cache_validity |=
2335 nfsi->cache_validity |=
2345 nfsi->cache_validity |=
2355 nfsi->cache_validity |=
2362 nfsi->cache_validity |=
2371 nfsi->cache_validity |=
2377 nfsi->cache_validity |=
2383 nfsi->attrtimeo = NFS_MINATTRTIMEO(inode);
2384 nfsi->attrtimeo_timestamp = now;
2386 nfsi->attr_gencount = nfs_inc_attr_generation_counter();
2389 if (!time_in_range_open(now, nfsi->attrtimeo_timestamp,
2390 nfsi->attrtimeo_timestamp + nfsi->attrtimeo)) {
2391 nfsi->attrtimeo <<= 1;
2392 if (nfsi->attrtimeo > NFS_MAXATTRTIMEO(inode))
2393 nfsi->attrtimeo = NFS_MAXATTRTIMEO(inode);
2395 nfsi->attrtimeo_timestamp = now;
2398 if ((long)(fattr->gencount - nfsi->attr_gencount) > 0)
2399 nfsi->attr_gencount = fattr->gencount;
2421 struct nfs_inode *nfsi;
2422 nfsi = alloc_inode_sb(sb, nfs_inode_cachep, GFP_KERNEL);
2423 if (!nfsi)
2425 nfsi->flags = 0UL;
2426 nfsi->cache_validity = 0UL;
2427 nfsi->ooo = NULL;
2429 nfsi->nfs4_acl = NULL;
2432 nfsi->xattr_cache = NULL;
2434 nfs_netfs_inode_init(nfsi);
2436 return &nfsi->vfs_inode;
2447 static inline void nfs4_init_once(struct nfs_inode *nfsi)
2450 INIT_LIST_HEAD(&nfsi->open_states);
2451 nfsi->delegation = NULL;
2452 init_rwsem(&nfsi->rwsem);
2453 nfsi->layout = NULL;
2459 struct nfs_inode *nfsi = foo;
2461 inode_init_once(&nfsi->vfs_inode);
2462 INIT_LIST_HEAD(&nfsi->open_files);
2463 INIT_LIST_HEAD(&nfsi->access_cache_entry_lru);
2464 INIT_LIST_HEAD(&nfsi->access_cache_inode_lru);
2465 nfs4_init_once(nfsi);