turbonfs/src/rpc_task.cpp (40 lines): - line 675: * TODO: Control this with a config. - line 684: * TODO: All the RPC callbacks where we receive post-op attributes or receive - line 848: * TODO: Maybe it should have a type of its own. - line 970: * TODO: What happens if application writes over these - line 1017: // TODO: Add fcsm::on_commit_fail() and call it from here. - line 1089: * TODO: For soft mount should we fail this? - line 1477: * TODO: Need to handle failure case and prevent state machine from - line 1483: // TODO: Add fcsm::on_flush_fail() and call it from here. - line 1584: * TODO: For soft mount should we fail this? - line 1755: /* TODO: Add support for aznfsc_cfg.sys.nodrc.create_exist_as_success */ - line 1934: /* TODO: Add support for aznfsc_cfg.sys.nodrc.create_exist_as_success */ - line 2311: /* TODO: Add support for aznfsc_cfg.sys.nodrc.create_exist_as_success */ - line 2665: * TODO: For soft mount should we fail this? - line 2696: * TODO: For soft mount should we fail this? - line 2742: * TODO: Shall we clear the write_error after conveying to the application - line 2909: * TODO: For soft mount should we fail this? - line 2939: * TODO: For soft mount should we fail this? - line 2982: * TODO: For soft mount should we fail this? - line 3027: * TODO: For soft mount should we fail this? - line 3066: * TODO: For soft mount should we fail this? - line 3097: * TODO: For soft mount should we fail this? - line 3129: * TODO: For soft mount should we fail this? - line 3171: * TODO: For soft mount should we fail this? - line 3207: * TODO: For soft mount should we fail this? - line 3239: * TODO: For soft mount should we fail this? - line 3321: // TODO: These log are causing crash, look at it later. - line 3332: // TODO: These log are causing crash, look at it later. - line 3360: * TODO: For soft mount should we fail this? - line 3425: * TODO: Shall we put it behind a config? - line 3655: * TODO: If we have just 1 bytes_chunk to fill, which is the most - line 4085: * TODO: To avoid allocating a new read_context we can reuse the - line 4133: * TODO: For soft mount should we fail this? - line 4411: * TODO: For soft mount should we fail this? - line 4661: * TODO: Try to steal entry->name to avoid the strdup(). - line 4912: * TODO: Restart directory enumeration on getting NFS3ERR_BAD_COOKIE. - line 5120: * TODO: Try to steal entry->name to avoid the strdup(). - line 5510: * TODO: For soft mount should we fail this? - line 5576: * TODO: For soft mount should we fail this? - line 5613: * TODO: While this is processing readdirentries, can those directory_entry - line 5687: * TODO: Remove directory_entry->attributes if we don't need them. turbonfs/inc/fs-handler.h (27 lines): - line 46: * TODO: Currently it contains many functions which are not needed by nofuse. - line 89: // TODO: Log all to-be-set attributes. - line 295: * TODO: Fill me. - line 317: * TODO: Explore kernel caching, its benefits and side-effects. - line 332: * TODO: Use this to identify the open file handle for which a given fuse - line 388: * TODO: See comments in readahead.h, ideally readahead state should be - line 444: * TODO: Remove this before going to production. - line 530: * TODO: Fill me. - line 552: * TODO: Later explore if kernel cacheing directory content is beneficial - line 625: * TODO: See if we want to flush the directory buffer to create - line 646: * TODO: Fill me. - line 673: * TODO: Fill me. - line 685: * TODO: Fill me. - line 696: * TODO: Fill me. - line 707: * TODO: Fill me. - line 761: * TODO: Fill me. - line 774: * TODO: Fill me. - line 786: * TODO: Fill me. - line 804: * TODO: Fill me. - line 821: * TODO: Fill me. - line 834: * TODO: Fill me. - line 869: * TODO: Remove this before going to production. - line 886: * TODO: Fill me. - line 898: * TODO: Fill me. - line 912: * TODO: Fill me. - line 945: * TODO: Fill me. - line 958: * TODO: Fill me. turbonfs/src/file_cache.cpp (19 lines): - line 75: // TODO: Handle memory alloc failures gracefully. - line 196: * TODO: We should update membuf::buffer as well, but for now we don't - line 292: * TODO: This is currently not used and not tested for various scenarios. - line 622: * TODO: Remove me once we have enough testing. - line 1083: * TODO: See if we can hold shared lock for cases where we don't have to - line 2089: // TODO: Make it shared lock. - line 2441: * TODO: Add pruning stats. - line 2725: * TODO: Currently this means we also don't invalidate membufs which - line 2927: * TODO: As bcs returned by this function are locked, it block parallel read - line 2942: // TODO: Make it shared lock. - line 2952: // TODO: Handle truncated membufs. - line 2970: * TODO: Once copy_to_cache() handles overwrite on commit_pending - line 2977: * TODO: How do we handle the case when application starts writing - line 2997: * TODO: When we handle writes to commit-pending data, this may - line 3028: // TODO: Make it shared lock. - line 3073: // TODO: Make it shared lock. - line 3077: // TODO: Do we want membufs that completely lie within end_off? - line 3103: // TODO: Make it shared lock. - line 3139: // TODO: Make it shared lock. turbonfs/src/nfs_inode.cpp (12 lines): - line 275: * TODO: In order to avoid taking inode_map_lock_0 for every forget, - line 429: * TODO: See if we can eliminate inline sleep. - line 782: * TODO: We don't do it currently, fix this! - line 802: * TODO: This can block the fuse thread for longish times affecting - line 971: * TODO: Investigate using splice for zero copy. - line 1005: * TODO: If we have copied at least one byte, do not fail but instead - line 1025: * TODO: We need to handle the case where application writes on - line 1590: // TODO: Review for commit. - line 1629: * TODO: Once the caller handles failures from truncate_start(), remove - line 1733: * TODO: Should this invalidation be controlled using a config? - line 1954: * TODO: Nitin to uncomment this along with his change that defines - line 2203: * TODO: ENABLE_NON_AZURE_NFS alert!! turbonfs/src/nfs_client.cpp (10 lines): - line 670: /* TODO: Add other request types */ - line 1385: * TODO: If it turns out to cause bad user experience, we can explore - line 1686: * TODO: Optimization for truncate case. - line 1864: // TODO: Make this a unique_ptr? - line 2100: * TODO: See if negative entries must be cached for lesser time. - line 2149: // TODO: Remove this memset if we are setting all fields. - line 2158: // TODO: Uncomment the below line. - line 2205: // TODO: Remove this memset if we are setting all fields. - line 2215: // TODO: set rdev. - line 2253: * TODO: Once we add sync getattr API in libnfs, we can get rid of this turbonfs/inc/file_cache.h (9 lines): - line 225: * TODO: trim() doesn't update buffer, which means membuf::buffer does not - line 643: * TODO: Shall we designate pvt for this specific job and rename this to - line 964: * FIXME: - line 994: * TODO: Reuse buffer from prev/adjacent chunk if it has space. Currently - line 1004: * common case is now addressed! Leaving the TODO for - line 1508: * TODO: Take cue from global memory pressure. - line 1545: * TODO: Take cue from global memory pressure. - line 1607: * TODO: Add counter/stats for counting how many times we forced - line 1735: * TODO: Also add periodic pruning support. turbonfs/src/main.cpp (8 lines): - line 87: * TODO: Kernel conveys us the various filesystem limits by passing the - line 109: * TODO: Readdir works fine but just that for readdir fuse kernel - line 126: // TODO: See if we can support O_TRUNC. - line 151: // TODO: See if we should enable this. - line 223: * TODO: Again, we can just log from here or any cleanup we want to do - line 695: * TODO: Add validity checks for aznfsc_cfg cmdline options, similar to - line 762: * TODO: Make this configurable? - line 925: // TODO: Extend this with meaningful error codes. turbonfs/inc/rpc_task.h (6 lines): - line 342: * TODO: Currently we don't support wsize smaller than 1MB. - line 535: * TODO: See if we should allocate this as a variable sized vector - line 621: // TODO: Should we only copy the required fields? - line 1754: // TODO: Add valid flag here for APIs? - line 1775: * TODO: Add a condition_variable where caller can wait and - line 2404: * TODO: libnfs only returns the following RPC errors turbonfs/src/fcsm.cpp (6 lines): - line 487: * TODO: Make sure this doesn't result in small-blocks being written. - line 874: * TODO: We MUST ensure that on_commit_complete() doesn't block else it'll - line 1045: * TODO: Handle the case where the ftgt wants us to do commit_full. - line 1085: * TODO: We MUST ensure that on_flush_complete() doesn't block else it'll - line 1286: * TODO: Handle the case where the ftgt wants us to do commit_full. - line 1333: * TODO: Modify flush_cache_and_wait() to also use the FCSM for turbonfs/src/nofuse.cpp (5 lines): - line 206: * TODO: For now we support only absolute and lexically normal paths. - line 270: // TODO: Add support for symlink resolution. - line 571: * TODO: Make this return proper values. - line 805: * TODO: We don't support fopen/fclose/fread/fwrite. - line 844: * TODO: Right now we do a basic dup where we make the newfd also point turbonfs/src/rpc_readdir.cpp (4 lines): - line 323: * TODO: Move the code to remove directory_entry with key - line 365: * TODO: Prune the map for space constraint. - line 388: * TODO: This needs review for supporting other NFS servers. - line 768: * TODO: Later when we implement readdirectory_cache purging due to turbonfs/inc/nofuse.h (4 lines): - line 48: * TODO: See if we want to carry something inside this for nofuse. - line 427: * TODO: Need to support dup/dup2 to have multiple fds refer to the same file, - line 458: * TODO: Currently we always return a constantly increasing fd and we - line 533: * TODO: For now only absolute pathnames with no symlink are supported. turbonfs/inc/nfs_internal.h (4 lines): - line 88: * TODO: Add support for readonly mount. - line 125: // TODO: Take it from aznfsc_cfg. - line 199: // TODO: Add members - line 208: // TODO: Add members. turbonfs/inc/rpc_transport.h (3 lines): - line 67: * TODO: Check if we need a lock over this vector. - line 138: * TODO: See if we want to open connections only when needed. - line 144: * TODO: See from where this should be called. turbonfs/inc/nfs_client.h (3 lines): - line 37: * TODO: Update libnfs to export this and remove from here. - line 242: * TODO: Audit this to make sure we perform cleanup for all components. - line 437: * TODO: Add more NFS APIs as we implement them. turbonfs/src/rpc_transport.cpp (3 lines): - line 48: * TODO: assert that rootfh received over each connection is same. - line 76: * TODO: Continue if we have minimum number of connections? - line 203: * TODO: We should not change write connection ranges while there turbonfs/src/readahead.cpp (2 lines): - line 493: * TODO: Add readahead stats. - line 638: * TODO: See if issuing a batch of reads over one connection turbonfs/src/connection.cpp (2 lines): - line 224: * TODO: Once this is moved to libnfs, it can be removed from here. - line 263: * TODO: See if we need to making this a config option. turbonfs/inc/nfs_inode.h (2 lines): - line 325: * TODO: Set this to false once we have servers with unstable write - line 458: * TODO: Initialize attr with postop attributes received in the RPC turbonfs/inc/readahead.h (2 lines): - line 44: * TODO: Currently it only tracks a single reader stream. If it's used in a - line 133: * TODO: If we can pass the filename add it too for better logging. turbonfs/inc/aznfsc.h (1 line): - line 377: * TODO: turbonfs/inc/rpc_stats.h (1 line): - line 273: * TODO: See if we need to track retries. turbonfs/src/log.cpp (1 line): - line 8: * TODO: Initialize the logger to set the log format and anything turbonfs/inc/connection.h (1 line): - line 12: * TODO: Reserve this while one RPC is being transmitted, we don't want to turbonfs/inc/rpc_readdir.h (1 line): - line 376: * TODO: Access to this must be synchronized. turbonfs/src/rpc_stats.cpp (1 line): - line 491: * TODO: Add more ops.