Whamcloud - gitweb
b=24007 obj mode should be covered by MA_INODE.
authorEric Mei <eric.mei@oracle.com>
Mon, 1 Nov 2010 16:15:02 +0000 (10:15 -0600)
committerVitaly Fertman <vitaly.fertman@sun.com>
Tue, 2 Nov 2010 12:13:24 +0000 (15:13 +0300)
r=di.wang
r=vitaly.fertman

lustre/mdt/mdt_reint.c

index 3354f56..c142d53 100644 (file)
@@ -761,22 +761,23 @@ static int mdt_reint_unlink(struct mdt_thread_info *info,
         if (rc == 0)
                 mdt_handle_last_unlink(info, mc, ma);
 
-        switch (ma->ma_attr.la_mode & S_IFMT) {
-        case S_IFDIR:
-                mdt_counter_incr(req->rq_export, LPROC_MDT_RMDIR);
-                break;
-        case S_IFREG:
-        case S_IFLNK:
-        case S_IFCHR:
-        case S_IFBLK:
-        case S_IFIFO:
-        case S_IFSOCK:
-                mdt_counter_incr(req->rq_export, LPROC_MDT_UNLINK);
-                break;
-        default:
-                CERROR("bad file type %o unlinking\n", ma->ma_attr.la_mode);
-                LBUG();
-                GOTO(out, rc = -EINVAL);
+        if (ma->ma_valid & MA_INODE) {
+                switch (ma->ma_attr.la_mode & S_IFMT) {
+                case S_IFDIR:
+                        mdt_counter_incr(req->rq_export, LPROC_MDT_RMDIR);
+                        break;
+                case S_IFREG:
+                case S_IFLNK:
+                case S_IFCHR:
+                case S_IFBLK:
+                case S_IFIFO:
+                case S_IFSOCK:
+                        mdt_counter_incr(req->rq_export, LPROC_MDT_UNLINK);
+                        break;
+                default:
+                        LASSERTF(0, "bad file type %o unlinking\n",
+                                 ma->ma_attr.la_mode);
+                }
         }
 
         EXIT;