short cnt;
struct dquot *tmp;
- if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode)) {
+ if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode) || S_ISFIFO(inode->i_mode) || S_ISSOCK(inode->i_mode)) {
for (cnt = 0; cnt < MAXQUOTAS; cnt++) {
if (type != -1 && cnt != type)
continue;
blocks = isize_to_blocks(inode->i_size, BLOCK_SIZE);
else
blocks = (inode->i_blocks / 2);
+
+
+ /*
+ * This shouldnt be needed but the goal is to fix 2.0 not
+ * do things in best of Torvalds style. Thats for 2.1...
+ */
+
+ if(S_ISFIFO(inode->i_mode)||S_ISSOCK(inode->i_mode))
+ blocks = 0;
/*
* Build the transfer_from and transfer_to lists and check quotas to see
NULL, /* mmap */
NULL, /* no special open code */
NULL, /* no special release code */
- file_fsync, /* fsync */
+ ext2_sync_file, /* fsync */
NULL, /* fasync */
NULL, /* check_media_change */
NULL /* revalidate */
{
int wait, err = 0;
- if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
- S_ISLNK(inode->i_mode)))
- return -EINVAL;
if (S_ISLNK(inode->i_mode) && !(inode->i_blocks))
/*
* Don't sync fast links!
kdev_t dq_dev; /* Device this applies to */
short dq_flags; /* see DQ_* */
short dq_count; /* reference count */
+ short dq_locknest; /* lock nesting */
+ struct task_struct *dq_lockproc; /* process holding the lock */
struct vfsmount *dq_mnt; /* vfsmountpoint this applies to */
struct dqblk dq_dqb; /* diskquota usage */
struct wait_queue *dq_wait; /* pointer to waitqueue */