@@ -468,6 +468,9 @@
#define OBD_FAIL_LLITE_LOST_LAYOUT 0x1407
#define OBD_FAIL_LLITE_NO_CHECK_DEAD 0x1408
#define OBD_FAIL_GETATTR_DELAY 0x1409
+#define OBD_FAIL_LLITE_CREATE_FILE_PAUSE 0x1409
+#define OBD_FAIL_LLITE_NEWNODE_PAUSE 0x140a
+#define OBD_FAIL_LLITE_SETDIRSTRIPE_PAUSE 0x140b
#define OBD_FAIL_LLITE_CREATE_NODE_PAUSE 0x140c
#define OBD_FAIL_LLITE_IMUTEX_SEC 0x140e
#define OBD_FAIL_LLITE_IMUTEX_NOSEC 0x140f
@@ -486,6 +486,8 @@ static int ll_dir_setdirstripe(struct dentry *dparent, struct lmv_user_md *lump,
if (err)
goto out_request;
+ CFS_FAIL_TIMEOUT(OBD_FAIL_LLITE_SETDIRSTRIPE_PAUSE, cfs_fail_val);
+
err = ll_prep_inode(&inode, &request->rq_pill, parent->i_sb, NULL);
if (err)
goto out_inode;
@@ -1156,6 +1156,8 @@ static int ll_atomic_open(struct inode *dir, struct dentry *dentry,
else if (de)
dentry = de;
+ CFS_FAIL_TIMEOUT(OBD_FAIL_LLITE_CREATE_FILE_PAUSE, cfs_fail_val);
+
if (!rc) {
if (it_disposition(it, DISP_OPEN_CREATE)) {
/* Dentry instantiated in ll_create_it. */
@@ -1485,6 +1487,8 @@ static int ll_new_node(struct inode *dir, struct dentry *dentry,
ll_update_times(request, dir);
+ CFS_FAIL_TIMEOUT(OBD_FAIL_LLITE_NEWNODE_PAUSE, cfs_fail_val);
+
err = ll_prep_inode(&inode, &request->rq_pill, dir->i_sb, NULL);
if (err)
goto err_exit;
@@ -1575,6 +1579,8 @@ static int ll_create_nd(struct inode *dir, struct dentry *dentry,
ktime_t kstart = ktime_get();
int rc;
+ CFS_FAIL_TIMEOUT(OBD_FAIL_LLITE_CREATE_FILE_PAUSE, cfs_fail_val);
+
CDEBUG(D_VFSTRACE,
"VFS Op:name=%pd, dir=" DFID "(%p), flags=%u, excl=%d\n",
dentry, PFID(ll_inode2fid(dir)), dir, mode, want_excl);