diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-04-24 05:51:47 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-04-24 05:51:47 -0400 |
commit | ec189c6a73fd6794c9297b8f4beefb0ae260e8bd (patch) | |
tree | a4ed60cdf61f73463650a53bb1b92a0e85a014c4 | |
parent | 3b9aa7f2731cf670518f5583ceede474715a39f2 (diff) | |
download | dbfs-ec189c6a73fd6794c9297b8f4beefb0ae260e8bd.tar.gz |
dbfs: Don't permit root inode unlink; increase getattr attr timeout.
-rw-r--r-- | dbfs-backend.c | 5 | ||||
-rw-r--r-- | dbfs.c | 2 | ||||
-rw-r--r-- | dbfs.h | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/dbfs-backend.c b/dbfs-backend.c index e051c75..aeffa16 100644 --- a/dbfs-backend.c +++ b/dbfs-backend.c @@ -361,6 +361,11 @@ int dbfs_unlink(guint64 parent, const char *name, unsigned long flags) if (rc) goto out; + if (ino_n == DBFS_ROOT_INO) { + rc = -EINVAL; + goto out; + } + rc = dbfs_inode_read(ino_n, &ino); if (rc) goto out; @@ -41,7 +41,7 @@ static void dbfs_op_getattr(fuse_req_t req, fuse_ino_t ino_n, st.st_mtime = GUINT64_FROM_LE(ino->raw_inode->mtime); st.st_ctime = GUINT64_FROM_LE(ino->raw_inode->ctime); - fuse_reply_attr(req, &st, 1.0); + fuse_reply_attr(req, &st, 2.0); dbfs_inode_free(ino); } @@ -5,6 +5,8 @@ enum { DBFS_BLK_ID_LEN = 20, DBFS_UNLINK_DIR = (1 << 0), + + DBFS_ROOT_INO = 1, }; enum { |